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