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