Statistics
| Branch: | Revision:

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