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 71