user.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. * 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. struct user_regs_struct {
  12. unsigned long r0;
  13. unsigned long r1;
  14. unsigned long r2;
  15. unsigned long r3;
  16. unsigned long r4;
  17. unsigned long r5;
  18. unsigned long r6;
  19. unsigned long r7;
  20. unsigned long r8;
  21. unsigned long r9;
  22. unsigned long r10;
  23. unsigned long r11;
  24. unsigned long r12;
  25. unsigned long r13;
  26. unsigned long r14;
  27. unsigned long r15;
  28. unsigned long r16;
  29. unsigned long r17;
  30. unsigned long r18;
  31. unsigned long r19;
  32. unsigned long r20;
  33. unsigned long r21;
  34. unsigned long r22;
  35. unsigned long r23;
  36. unsigned long r24;
  37. unsigned long r25;
  38. unsigned long r26;
  39. unsigned long r27;
  40. unsigned long r28;
  41. unsigned long r29;
  42. unsigned long r30;
  43. unsigned long r31;
  44. unsigned long sa0;
  45. unsigned long lc0;
  46. unsigned long sa1;
  47. unsigned long lc1;
  48. unsigned long m0;
  49. unsigned long m1;
  50. unsigned long usr;
  51. unsigned long p3_0;
  52. unsigned long gp;
  53. unsigned long ugp;
  54. unsigned long pc;
  55. unsigned long cause;
  56. unsigned long badva;
  57. #if CONFIG_HEXAGON_ARCH_VERSION < 4
  58. unsigned long pad1; /* pad out to 48 words total */
  59. unsigned long pad2; /* pad out to 48 words total */
  60. unsigned long pad3; /* pad out to 48 words total */
  61. #else
  62. unsigned long cs0;
  63. unsigned long cs1;
  64. unsigned long pad1; /* pad out to 48 words total */
  65. #endif
  66. };
  67. #endif