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