xref: /openbmc/linux/arch/hexagon/include/uapi/asm/user.h (revision 6f52b16c)
16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
23ed8d115SDavid Howells #ifndef HEXAGON_ASM_USER_H
33ed8d115SDavid Howells #define HEXAGON_ASM_USER_H
43ed8d115SDavid Howells 
53ed8d115SDavid Howells /*
63ed8d115SDavid Howells  * Layout for registers passed in elf core dumps to userspace.
73ed8d115SDavid Howells  *
83ed8d115SDavid Howells  * Basically a rearranged subset of "pt_regs".
93ed8d115SDavid Howells  *
103ed8d115SDavid Howells  * Interested parties:  libc, gdb...
113ed8d115SDavid Howells  */
123ed8d115SDavid Howells 
133ed8d115SDavid Howells struct user_regs_struct {
143ed8d115SDavid Howells 	unsigned long r0;
153ed8d115SDavid Howells 	unsigned long r1;
163ed8d115SDavid Howells 	unsigned long r2;
173ed8d115SDavid Howells 	unsigned long r3;
183ed8d115SDavid Howells 	unsigned long r4;
193ed8d115SDavid Howells 	unsigned long r5;
203ed8d115SDavid Howells 	unsigned long r6;
213ed8d115SDavid Howells 	unsigned long r7;
223ed8d115SDavid Howells 	unsigned long r8;
233ed8d115SDavid Howells 	unsigned long r9;
243ed8d115SDavid Howells 	unsigned long r10;
253ed8d115SDavid Howells 	unsigned long r11;
263ed8d115SDavid Howells 	unsigned long r12;
273ed8d115SDavid Howells 	unsigned long r13;
283ed8d115SDavid Howells 	unsigned long r14;
293ed8d115SDavid Howells 	unsigned long r15;
303ed8d115SDavid Howells 	unsigned long r16;
313ed8d115SDavid Howells 	unsigned long r17;
323ed8d115SDavid Howells 	unsigned long r18;
333ed8d115SDavid Howells 	unsigned long r19;
343ed8d115SDavid Howells 	unsigned long r20;
353ed8d115SDavid Howells 	unsigned long r21;
363ed8d115SDavid Howells 	unsigned long r22;
373ed8d115SDavid Howells 	unsigned long r23;
383ed8d115SDavid Howells 	unsigned long r24;
393ed8d115SDavid Howells 	unsigned long r25;
403ed8d115SDavid Howells 	unsigned long r26;
413ed8d115SDavid Howells 	unsigned long r27;
423ed8d115SDavid Howells 	unsigned long r28;
433ed8d115SDavid Howells 	unsigned long r29;
443ed8d115SDavid Howells 	unsigned long r30;
453ed8d115SDavid Howells 	unsigned long r31;
463ed8d115SDavid Howells 	unsigned long sa0;
473ed8d115SDavid Howells 	unsigned long lc0;
483ed8d115SDavid Howells 	unsigned long sa1;
493ed8d115SDavid Howells 	unsigned long lc1;
503ed8d115SDavid Howells 	unsigned long m0;
513ed8d115SDavid Howells 	unsigned long m1;
523ed8d115SDavid Howells 	unsigned long usr;
533ed8d115SDavid Howells 	unsigned long p3_0;
543ed8d115SDavid Howells 	unsigned long gp;
553ed8d115SDavid Howells 	unsigned long ugp;
563ed8d115SDavid Howells 	unsigned long pc;
573ed8d115SDavid Howells 	unsigned long cause;
583ed8d115SDavid Howells 	unsigned long badva;
5960c4ba99SRichard Kuo #if CONFIG_HEXAGON_ARCH_VERSION < 4
603ed8d115SDavid Howells 	unsigned long pad1;  /* pad out to 48 words total */
613ed8d115SDavid Howells 	unsigned long pad2;  /* pad out to 48 words total */
623ed8d115SDavid Howells 	unsigned long pad3;  /* pad out to 48 words total */
6360c4ba99SRichard Kuo #else
6460c4ba99SRichard Kuo 	unsigned long cs0;
6560c4ba99SRichard Kuo 	unsigned long cs1;
6660c4ba99SRichard Kuo 	unsigned long pad1;  /* pad out to 48 words total */
6760c4ba99SRichard Kuo #endif
683ed8d115SDavid Howells };
693ed8d115SDavid Howells 
703ed8d115SDavid Howells #endif
71