about summary refs log tree commit diff
path: root/arch/x86_64/bits/user.h
diff options
context:
space:
mode:
authorNicholas J. Kain <njkain@gmail.com>2011-02-15 07:32:09 -0500
committerNicholas J. Kain <njkain@gmail.com>2011-02-15 07:32:09 -0500
commit1e12632591ab98a6ea3af8680716c28282552981 (patch)
tree5b79bd9a0b950d6ab414fef8cbb5dfcd1a6d2e83 /arch/x86_64/bits/user.h
parentc2afb747b0296f23cd1903e82ccbdee3fc2978fd (diff)
downloadmusl-1e12632591ab98a6ea3af8680716c28282552981.tar.gz
musl-1e12632591ab98a6ea3af8680716c28282552981.tar.xz
musl-1e12632591ab98a6ea3af8680716c28282552981.zip
Port musl to x86-64. One giant commit!
Diffstat (limited to 'arch/x86_64/bits/user.h')
-rw-r--r--arch/x86_64/bits/user.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/arch/x86_64/bits/user.h b/arch/x86_64/bits/user.h
new file mode 100644
index 00000000..13ff027b
--- /dev/null
+++ b/arch/x86_64/bits/user.h
@@ -0,0 +1,77 @@
+#undef __WORDSIZE
+#define __WORDSIZE 32
+
+struct user_fpregs_struct
+{
+	long int cwd;
+	long int swd;
+	long int twd;
+	long int fip;
+	long int fcs;
+	long int foo;
+	long int fos;
+	long int st_space[20];
+};
+
+struct user_fpxregs_struct
+{
+	unsigned short int cwd;
+	unsigned short int swd;
+	unsigned short int twd;
+	unsigned short int fop;
+	long int fip;
+	long int fcs;
+	long int foo;
+	long int fos;
+	long int mxcsr;
+	long int reserved;
+	long int st_space[32];
+	long int xmm_space[32];
+	long int padding[56];
+};
+
+struct user_regs_struct
+{
+	long int ebx;
+	long int ecx;
+	long int edx;
+	long int esi;
+	long int edi;
+	long int ebp;
+	long int eax;
+	long int xds;
+	long int xes;
+	long int xfs;
+	long int xgs;
+	long int orig_eax;
+	long int eip;
+	long int xcs;
+	long int eflags;
+	long int esp;
+	long int xss;
+};
+
+struct user
+{
+	struct user_regs_struct		regs;
+	int				u_fpvalid;
+	struct user_fpregs_struct	i387;
+	unsigned long int		u_tsize;
+	unsigned long int		u_dsize;
+	unsigned long int		u_ssize;
+	unsigned long			start_code;
+	unsigned long			start_stack;
+	long int			signal;
+	int				reserved;
+	struct user_regs_struct		*u_ar0;
+	struct user_fpregs_struct	*u_fpstate;
+	unsigned long int		magic;
+	char				u_comm[32];
+	int				u_debugreg[8];
+};
+
+#define PAGE_MASK		(~(PAGE_SIZE-1))
+#define NBPG			PAGE_SIZE
+#define UPAGES			1
+#define HOST_TEXT_START_ADDR	(u.start_code)
+#define HOST_STACK_END_ADDR	(u.start_stack + u.u_ssize * NBPG)