1*c9945492SAndroid Build Coastguard Worker typedef struct user_fpregs_struct { 2*c9945492SAndroid Build Coastguard Worker uint16_t cwd, swd, ftw, fop; 3*c9945492SAndroid Build Coastguard Worker uint64_t rip, rdp; 4*c9945492SAndroid Build Coastguard Worker uint32_t mxcsr, mxcr_mask; 5*c9945492SAndroid Build Coastguard Worker uint32_t st_space[32], xmm_space[64], padding[24]; 6*c9945492SAndroid Build Coastguard Worker } elf_fpregset_t; 7*c9945492SAndroid Build Coastguard Worker 8*c9945492SAndroid Build Coastguard Worker struct user_regs_struct { 9*c9945492SAndroid Build Coastguard Worker unsigned long r15, r14, r13, r12, rbp, rbx, r11, r10, r9, r8; 10*c9945492SAndroid Build Coastguard Worker unsigned long rax, rcx, rdx, rsi, rdi, orig_rax, rip; 11*c9945492SAndroid Build Coastguard Worker unsigned long cs, eflags, rsp, ss, fs_base, gs_base, ds, es, fs, gs; 12*c9945492SAndroid Build Coastguard Worker }; 13*c9945492SAndroid Build Coastguard Worker #define ELF_NGREG 27 14*c9945492SAndroid Build Coastguard Worker typedef unsigned long long elf_greg_t, elf_gregset_t[ELF_NGREG]; 15*c9945492SAndroid Build Coastguard Worker 16*c9945492SAndroid Build Coastguard Worker struct user { 17*c9945492SAndroid Build Coastguard Worker struct user_regs_struct regs; 18*c9945492SAndroid Build Coastguard Worker int u_fpvalid; 19*c9945492SAndroid Build Coastguard Worker struct user_fpregs_struct i387; 20*c9945492SAndroid Build Coastguard Worker unsigned long u_tsize; 21*c9945492SAndroid Build Coastguard Worker unsigned long u_dsize; 22*c9945492SAndroid Build Coastguard Worker unsigned long u_ssize; 23*c9945492SAndroid Build Coastguard Worker unsigned long start_code; 24*c9945492SAndroid Build Coastguard Worker unsigned long start_stack; 25*c9945492SAndroid Build Coastguard Worker long signal; 26*c9945492SAndroid Build Coastguard Worker int reserved; 27*c9945492SAndroid Build Coastguard Worker struct user_regs_struct *u_ar0; 28*c9945492SAndroid Build Coastguard Worker struct user_fpregs_struct *u_fpstate; 29*c9945492SAndroid Build Coastguard Worker unsigned long magic; 30*c9945492SAndroid Build Coastguard Worker char u_comm[32]; 31*c9945492SAndroid Build Coastguard Worker unsigned long u_debugreg[8]; 32*c9945492SAndroid Build Coastguard Worker }; 33*c9945492SAndroid Build Coastguard Worker 34*c9945492SAndroid Build Coastguard Worker #define PAGE_MASK (~(PAGESIZE-1)) 35*c9945492SAndroid Build Coastguard Worker #define NBPG PAGESIZE 36*c9945492SAndroid Build Coastguard Worker #define UPAGES 1 37*c9945492SAndroid Build Coastguard Worker #define HOST_TEXT_START_ADDR (u.start_code) 38*c9945492SAndroid Build Coastguard Worker #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) 39