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