xref: /aosp_15_r20/external/musl/arch/x32/bits/user.h (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
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