| 1 | #undef __WORDSIZE |
| 2 | #define __WORDSIZE 64 |
| 3 | |
| 4 | typedef union { |
| 5 | 	double d; |
| 6 | 	float f; |
| 7 | } elf_fpreg_t; |
| 8 | |
| 9 | typedef struct { |
| 10 | 	unsigned fpc; |
| 11 | 	elf_fpreg_t fprs[16]; |
| 12 | } elf_fpregset_t; |
| 13 | |
| 14 | #define ELF_NGREG 27 |
| 15 | typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG]; |
| 16 | |
| 17 | struct _user_psw_struct { |
| 18 | 	unsigned long mask, addr; |
| 19 | }; |
| 20 | |
| 21 | struct _user_fpregs_struct { |
| 22 | 	unsigned fpc; |
| 23 | 	double fprs[16]; |
| 24 | }; |
| 25 | |
| 26 | struct _user_per_struct { |
| 27 | 	unsigned long control_regs[3]; |
| 28 | 	unsigned single_step : 1; |
| 29 | 	unsigned instruction_fetch : 1; |
| 30 | 	unsigned : 30; |
| 31 | 	unsigned long starting_addr, ending_addr; |
| 32 | 	unsigned short perc_atmid; |
| 33 | 	unsigned long address; |
| 34 | 	unsigned char access_id; |
| 35 | }; |
| 36 | |
| 37 | struct _user_regs_struct { |
| 38 | 	struct _user_psw_struct psw; |
| 39 | 	unsigned long gprs[16]; |
| 40 | 	unsigned acrs[16]; |
| 41 | 	unsigned long orig_gpr2; |
| 42 | 	struct _user_fpregs_struct fp_regs; |
| 43 | 	struct _user_per_struct per_info; |
| 44 | 	unsigned long ieee_instruction_pointer; |
| 45 | }; |
| 46 | |
| 47 | struct user { |
| 48 | 	struct _user_regs_struct regs; |
| 49 | 	unsigned long u_tsize, u_dsize, u_ssize; |
| 50 | 	unsigned long start_code, start_stack; |
| 51 | 	long signal; |
| 52 | 	struct _user_regs_struct *u_ar0; |
| 53 | 	unsigned long magic; |
| 54 | 	char u_comm[32]; |
| 55 | }; |
| 56 | |
| 57 | #define PAGE_MASK (~(PAGESIZE-1)) |
| 58 | #define NBPG PAGESIZE |
| 59 | #define UPAGES 1 |
| 60 | #define HOST_TEXT_START_ADDR (u.start_code) |
| 61 | #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) |
| 62 | |