root / linux-user / qemu.h @ 31e31b8a
History | View | Annotate | Download (1.2 kB)
1 | 31e31b8a | bellard | #ifndef GEMU_H
|
---|---|---|---|
2 | 31e31b8a | bellard | #define GEMU_H
|
3 | 31e31b8a | bellard | |
4 | 31e31b8a | bellard | #include "thunk.h" |
5 | 31e31b8a | bellard | |
6 | 31e31b8a | bellard | struct pt_regs {
|
7 | 31e31b8a | bellard | long ebx;
|
8 | 31e31b8a | bellard | long ecx;
|
9 | 31e31b8a | bellard | long edx;
|
10 | 31e31b8a | bellard | long esi;
|
11 | 31e31b8a | bellard | long edi;
|
12 | 31e31b8a | bellard | long ebp;
|
13 | 31e31b8a | bellard | long eax;
|
14 | 31e31b8a | bellard | int xds;
|
15 | 31e31b8a | bellard | int xes;
|
16 | 31e31b8a | bellard | long orig_eax;
|
17 | 31e31b8a | bellard | long eip;
|
18 | 31e31b8a | bellard | int xcs;
|
19 | 31e31b8a | bellard | long eflags;
|
20 | 31e31b8a | bellard | long esp;
|
21 | 31e31b8a | bellard | int xss;
|
22 | 31e31b8a | bellard | }; |
23 | 31e31b8a | bellard | |
24 | 31e31b8a | bellard | /* This struct is used to hold certain information about the image.
|
25 | 31e31b8a | bellard | * Basically, it replicates in user space what would be certain
|
26 | 31e31b8a | bellard | * task_struct fields in the kernel
|
27 | 31e31b8a | bellard | */
|
28 | 31e31b8a | bellard | struct image_info {
|
29 | 31e31b8a | bellard | unsigned long start_code; |
30 | 31e31b8a | bellard | unsigned long end_code; |
31 | 31e31b8a | bellard | unsigned long end_data; |
32 | 31e31b8a | bellard | unsigned long start_brk; |
33 | 31e31b8a | bellard | unsigned long brk; |
34 | 31e31b8a | bellard | unsigned long start_mmap; |
35 | 31e31b8a | bellard | unsigned long mmap; |
36 | 31e31b8a | bellard | unsigned long rss; |
37 | 31e31b8a | bellard | unsigned long start_stack; |
38 | 31e31b8a | bellard | unsigned long arg_start; |
39 | 31e31b8a | bellard | unsigned long arg_end; |
40 | 31e31b8a | bellard | unsigned long env_start; |
41 | 31e31b8a | bellard | unsigned long env_end; |
42 | 31e31b8a | bellard | unsigned long entry; |
43 | 31e31b8a | bellard | int personality;
|
44 | 31e31b8a | bellard | }; |
45 | 31e31b8a | bellard | |
46 | 31e31b8a | bellard | int elf_exec(const char * filename, char ** argv, char ** envp, |
47 | 31e31b8a | bellard | struct pt_regs * regs, struct image_info *infop); |
48 | 31e31b8a | bellard | |
49 | 31e31b8a | bellard | void target_set_brk(char *new_brk); |
50 | 31e31b8a | bellard | void syscall_init(void); |
51 | 31e31b8a | bellard | long do_syscall(int num, long arg1, long arg2, long arg3, |
52 | 31e31b8a | bellard | long arg4, long arg5, long arg6); |
53 | 31e31b8a | bellard | void gemu_log(const char *fmt, ...) __attribute__((format(printf,1,2))); |
54 | 31e31b8a | bellard | |
55 | 31e31b8a | bellard | |
56 | 31e31b8a | bellard | |
57 | 31e31b8a | bellard | #endif |