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