xref: /openbmc/linux/arch/hexagon/include/uapi/asm/user.h (revision 12eb4683)
1 #ifndef HEXAGON_ASM_USER_H
2 #define HEXAGON_ASM_USER_H
3 
4 /*
5  * Layout for registers passed in elf core dumps to userspace.
6  *
7  * Basically a rearranged subset of "pt_regs".
8  *
9  * Interested parties:  libc, gdb...
10  */
11 
12 struct user_regs_struct {
13 	unsigned long r0;
14 	unsigned long r1;
15 	unsigned long r2;
16 	unsigned long r3;
17 	unsigned long r4;
18 	unsigned long r5;
19 	unsigned long r6;
20 	unsigned long r7;
21 	unsigned long r8;
22 	unsigned long r9;
23 	unsigned long r10;
24 	unsigned long r11;
25 	unsigned long r12;
26 	unsigned long r13;
27 	unsigned long r14;
28 	unsigned long r15;
29 	unsigned long r16;
30 	unsigned long r17;
31 	unsigned long r18;
32 	unsigned long r19;
33 	unsigned long r20;
34 	unsigned long r21;
35 	unsigned long r22;
36 	unsigned long r23;
37 	unsigned long r24;
38 	unsigned long r25;
39 	unsigned long r26;
40 	unsigned long r27;
41 	unsigned long r28;
42 	unsigned long r29;
43 	unsigned long r30;
44 	unsigned long r31;
45 	unsigned long sa0;
46 	unsigned long lc0;
47 	unsigned long sa1;
48 	unsigned long lc1;
49 	unsigned long m0;
50 	unsigned long m1;
51 	unsigned long usr;
52 	unsigned long p3_0;
53 	unsigned long gp;
54 	unsigned long ugp;
55 	unsigned long pc;
56 	unsigned long cause;
57 	unsigned long badva;
58 #if CONFIG_HEXAGON_ARCH_VERSION < 4
59 	unsigned long pad1;  /* pad out to 48 words total */
60 	unsigned long pad2;  /* pad out to 48 words total */
61 	unsigned long pad3;  /* pad out to 48 words total */
62 #else
63 	unsigned long cs0;
64 	unsigned long cs1;
65 	unsigned long pad1;  /* pad out to 48 words total */
66 #endif
67 };
68 
69 #endif
70