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
12struct 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