d2065b5e02294c35cc26e0a050dfd2579e7fb27f
[musl] / arch / s390x / bits / user.h
1 #undef __WORDSIZE
2 #define __WORDSIZE 64
3
4 typedef union {
5         double d;
6         float f;
7 } elf_fpreg_t;
8
9 typedef struct {
10         unsigned fpc;
11         fpreg_t fprs[16];
12 } elf_fpregset_t;
13
14 #define ELF_NGREG 27
15 typedef unsigned long elf_greg_t, elf_gregset_t[ELG_NGREG];
16
17 struct _user_psw_struct {
18         unsigned long mask, addr;
19 };
20
21 struct _user_fpregs_struct {
22         unsigned fpc;
23         double fprs[16];
24 };
25
26 struct _user_regs_struct {
27         struct _user_psw_struct psw;
28         unsigned long gprs[16];
29         unsigned acrs[16];
30         unsigned long orig_gpr2;
31         struct _user_fpregs_struct fp_regs;
32         struct _user_per_struct per_info;
33         unsigned long ieee_instruction_pointer;
34 };
35
36 struct _user_per_struct {
37         unsigned long control_regs[3];
38         unsigned single_step       : 1;
39         unsigned instruction_fetch : 1;
40         unsigned                   : 30;
41         unsigned long starting_addr, ending_addr;
42         unsigned short perc_atmid;
43         unsigned long address;
44         unsigned char access_id;
45 } per_struct;
46
47 struct user {
48         struct _user_regs_struct regs;
49         unsigned long u_tsize, u_dsize, u_ssize;
50         unsigned long start_code, start_stack;
51         long signal;
52         struct _user_regs_struct *u_ar0;
53         unsigned long magic;
54         char u_comm[32];
55 };
56
57 #define PAGE_MASK            (~(PAGE_SIZE-1))
58 #define NBPG                 PAGE_SIZE
59 #define UPAGES               1
60 #define HOST_TEXT_START_ADDR (u.start_code)
61 #define HOST_STACK_END_ADDR  (u.start_stack + u.u_ssize * NBPG)
62