rework langinfo code for ABI compat and for use by time code
[musl] / arch / x86_64 / bits / user.h
1 #undef __WORDSIZE
2 #define __WORDSIZE 64
3
4 typedef 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 } elf_fpregset_t;
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 #define ELF_NGREG 27
19 typedef unsigned long long elf_greg_t, elf_gregset_t[ELF_NGREG];
20
21 struct user
22 {
23         struct user_regs_struct         regs;
24         int                             u_fpvalid;
25         struct user_fpregs_struct       i387;
26         unsigned long                   u_tsize;
27         unsigned long                   u_dsize;
28         unsigned long                   u_ssize;
29         unsigned long                   start_code;
30         unsigned long                   start_stack;
31         long                            signal;
32         int                             reserved;
33         struct user_regs_struct         *u_ar0;
34         struct user_fpregs_struct       *u_fpstate;
35         unsigned long                   magic;
36         char                            u_comm[32];
37         unsigned long                   u_debugreg[8];
38 };
39
40 #define PAGE_MASK               (~(PAGE_SIZE-1))
41 #define NBPG                    PAGE_SIZE
42 #define UPAGES                  1
43 #define HOST_TEXT_START_ADDR    (u.start_code)
44 #define HOST_STACK_END_ADDR     (u.start_stack + u.u_ssize * NBPG)