1#undef __WORDSIZE
2#define __WORDSIZE 64
3
4typedef union {
5	double d;
6	float f;
7} elf_fpreg_t;
8
9typedef struct {
10	unsigned fpc;
11	fpreg_t fprs[16];
12} elf_fpregset_t;
13
14#define ELF_NGREG 27
15typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
16
17struct _user_psw_struct {
18	unsigned long mask, addr;
19};
20
21struct _user_fpregs_struct {
22	unsigned fpc;
23	double fprs[16];
24};
25
26struct _user_per_struct {
27	unsigned long control_regs[3];
28	unsigned single_step       : 1;
29	unsigned instruction_fetch : 1;
30	unsigned                   : 30;
31	unsigned long starting_addr, ending_addr;
32	unsigned short perc_atmid;
33	unsigned long address;
34	unsigned char access_id;
35} per_struct;
36
37struct _user_regs_struct {
38	struct _user_psw_struct psw;
39	unsigned long gprs[16];
40	unsigned acrs[16];
41	unsigned long orig_gpr2;
42	struct _user_fpregs_struct fp_regs;
43	struct _user_per_struct per_info;
44	unsigned long ieee_instruction_pointer;
45};
46
47struct 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
63