summary refs log tree commit diff stats
path: root/linux-user/qemu.h
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-02-18 22:55:36 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-02-18 22:55:36 +0000
commit31e31b8a248ffa216223dad49f75efbdfca5df23 (patch)
tree7a2e4a2e20da5bd5d61f906f6d75dab2d3418e5f /linux-user/qemu.h
parente63c3dc74bfb90e4522d075d0d5a7600c5145745 (diff)
downloadfocaccia-qemu-31e31b8a248ffa216223dad49f75efbdfca5df23.tar.gz
focaccia-qemu-31e31b8a248ffa216223dad49f75efbdfca5df23.zip
This commit was generated by cvs2svn to compensate for changes in r2,
which included commits to RCS files with non-trunk default branches.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'linux-user/qemu.h')
-rw-r--r--linux-user/qemu.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
new file mode 100644
index 0000000000..fa40d4d845
--- /dev/null
+++ b/linux-user/qemu.h
@@ -0,0 +1,57 @@
+#ifndef GEMU_H
+#define GEMU_H
+
+#include "thunk.h"
+
+struct pt_regs {
+	long ebx;
+	long ecx;
+	long edx;
+	long esi;
+	long edi;
+	long ebp;
+	long eax;
+	int  xds;
+	int  xes;
+	long orig_eax;
+	long eip;
+	int  xcs;
+	long eflags;
+	long esp;
+	int  xss;
+};
+
+/* This struct is used to hold certain information about the image.
+ * Basically, it replicates in user space what would be certain
+ * task_struct fields in the kernel
+ */
+struct image_info {
+	unsigned long	start_code;
+	unsigned long	end_code;
+	unsigned long	end_data;
+	unsigned long	start_brk;
+	unsigned long	brk;
+	unsigned long	start_mmap;
+	unsigned long	mmap;
+	unsigned long	rss;
+	unsigned long	start_stack;
+	unsigned long	arg_start;
+	unsigned long	arg_end;
+	unsigned long	env_start;
+	unsigned long	env_end;
+	unsigned long	entry;
+	int		personality;
+};
+
+int elf_exec(const char * filename, char ** argv, char ** envp, 
+             struct pt_regs * regs, struct image_info *infop);
+
+void target_set_brk(char *new_brk);
+void syscall_init(void);
+long do_syscall(int num, long arg1, long arg2, long arg3, 
+                long arg4, long arg5, long arg6);
+void gemu_log(const char *fmt, ...) __attribute__((format(printf,1,2)));
+
+
+
+#endif