Bobby Bingham | 1509494 | 2016-11-11 21:52:05 -0600 | [diff] [blame] | 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 | fpreg_t fprs[16]; |
| 12 | } elf_fpregset_t; |
| 13 | |
| 14 | #define ELF_NGREG 27 |
Bobby Bingham | afefce1 | 2016-11-14 21:37:41 -0600 | [diff] [blame^] | 15 | typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG]; |
Bobby Bingham | 1509494 | 2016-11-11 21:52:05 -0600 | [diff] [blame] | 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_regs_struct { |
| 27 | struct _user_psw_struct psw; |
| 28 | unsigned long gprs[16]; |
| 29 | unsigned acrs[16]; |
| 30 | unsigned long orig_gpr2; |
| 31 | struct _user_fpregs_struct fp_regs; |
| 32 | struct _user_per_struct per_info; |
| 33 | unsigned long ieee_instruction_pointer; |
| 34 | }; |
| 35 | |
| 36 | struct _user_per_struct { |
| 37 | unsigned long control_regs[3]; |
| 38 | unsigned single_step : 1; |
| 39 | unsigned instruction_fetch : 1; |
| 40 | unsigned : 30; |
| 41 | unsigned long starting_addr, ending_addr; |
| 42 | unsigned short perc_atmid; |
| 43 | unsigned long address; |
| 44 | unsigned char access_id; |
| 45 | } per_struct; |
| 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 (~(PAGE_SIZE-1)) |
| 58 | #define NBPG PAGE_SIZE |
| 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 | |