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
13struct 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	/* cs0 and cs1 are only available with HEXAGON_ARCH_VERSION >= 4 */
60	unsigned long cs0;
61	unsigned long cs1;
62	unsigned long pad1;  /* pad out to 48 words total */
63};
64
65#endif
66