| 1 | #undef __WORDSIZE |
| 2 | #define __WORDSIZE 32 |
| 3 | |
| 4 | typedef struct user_fpregs_struct { |
| 5 | 	long cwd, swd, twd, fip, fcs, foo, fos, st_space[20]; |
| 6 | } elf_fpregset_t; |
| 7 | |
| 8 | typedef struct user_fpxregs_struct { |
| 9 | 	unsigned short cwd, swd, twd, fop; |
| 10 | 	long fip, fcs, foo, fos, mxcsr, reserved; |
| 11 | 	long st_space[32], xmm_space[32], padding[56]; |
| 12 | } elf_fpxregset_t; |
| 13 | |
| 14 | struct user_regs_struct { |
| 15 | 	long ebx, ecx, edx, esi, edi, ebp, eax, xds, xes, xfs, xgs; |
| 16 | 	long orig_eax, eip, xcs, eflags, esp, xss; |
| 17 | }; |
| 18 | |
| 19 | #define ELF_NGREG 17 |
| 20 | typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG]; |
| 21 | |
| 22 | struct user { |
| 23 | 	struct user_regs_struct		regs; |
| 24 | 	int				u_fpvalid; |
| 25 | 	struct user_fpregs_struct	i387; |
| 26 | 	unsigned long			u_tsize; |
| 27 | 	unsigned long			u_dsize; |
| 28 | 	unsigned long			u_ssize; |
| 29 | 	unsigned long			start_code; |
| 30 | 	unsigned long			start_stack; |
| 31 | 	long				signal; |
| 32 | 	int				reserved; |
| 33 | 	struct user_regs_struct		*u_ar0; |
| 34 | 	struct user_fpregs_struct	*u_fpstate; |
| 35 | 	unsigned long			magic; |
| 36 | 	char				u_comm[32]; |
| 37 | 	int				u_debugreg[8]; |
| 38 | }; |
| 39 | |
| 40 | #define PAGE_MASK		(~(PAGESIZE-1)) |
| 41 | #define NBPG			PAGESIZE |
| 42 | #define UPAGES			1 |
| 43 | #define HOST_TEXT_START_ADDR	(u.start_code) |
| 44 | #define HOST_STACK_END_ADDR	(u.start_stack + u.u_ssize * NBPG) |