76 lines
1.4 KiB
C
76 lines
1.4 KiB
C
#ifndef HEADER_UPROTOCOL_H
|
|
#define HEADER_UPROTOCOL_H
|
|
|
|
#define MCEXEC_UP_PREPARE_IMAGE 0x30a02900
|
|
#define MCEXEC_UP_LOAD_IMAGE 0x30a02901
|
|
#define MCEXEC_UP_START_IMAGE 0x30a02902
|
|
#define MCEXEC_UP_WAIT_SYSCALL 0x30a02903
|
|
#define MCEXEC_UP_RET_SYSCALL 0x30a02904
|
|
#define MCEXEC_UP_LOAD_SYSCALL 0x30a02905
|
|
|
|
#define MCEXEC_UP_PREPARE_DMA 0x30a02910
|
|
|
|
struct program_transfer {
|
|
unsigned long dest;
|
|
void *src;
|
|
unsigned long sz;
|
|
};
|
|
|
|
struct program_image_section {
|
|
unsigned long vaddr;
|
|
unsigned long len;
|
|
unsigned long remote_pa;
|
|
unsigned long filesz, offset;
|
|
void *source;
|
|
};
|
|
|
|
struct program_load_desc {
|
|
int num_sections;
|
|
int status;
|
|
int cpu;
|
|
int pid;
|
|
unsigned long entry;
|
|
unsigned long rprocess;
|
|
unsigned long at_phdr;
|
|
unsigned long at_phent;
|
|
unsigned long at_phnum;
|
|
char *args;
|
|
unsigned long args_len;
|
|
char *envs;
|
|
unsigned long envs_len;
|
|
struct program_image_section sections[0];
|
|
};
|
|
|
|
struct syscall_request {
|
|
unsigned long valid;
|
|
unsigned long number;
|
|
unsigned long args[6];
|
|
};
|
|
|
|
struct syscall_wait_desc {
|
|
unsigned long cpu;
|
|
struct syscall_request sr;
|
|
};
|
|
|
|
struct syscall_load_desc {
|
|
unsigned long cpu;
|
|
unsigned long src;
|
|
unsigned long dest;
|
|
unsigned long size;
|
|
};
|
|
|
|
struct syscall_response {
|
|
unsigned long status;
|
|
long ret;
|
|
};
|
|
|
|
struct syscall_ret_desc {
|
|
long cpu;
|
|
long ret;
|
|
unsigned long src;
|
|
unsigned long dest;
|
|
unsigned long size;
|
|
};
|
|
|
|
#endif
|