user.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef HEXAGON_ASM_USER_H
  2. #define HEXAGON_ASM_USER_H
  3. /*
  4. * Layout for registers passed in elf core dumps to userspace.
  5. *
  6. * Basically a rearranged subset of "pt_regs".
  7. *
  8. * Interested parties: libc, gdb...
  9. */
  10. struct user_regs_struct {
  11. unsigned long r0;
  12. unsigned long r1;
  13. unsigned long r2;
  14. unsigned long r3;
  15. unsigned long r4;
  16. unsigned long r5;
  17. unsigned long r6;
  18. unsigned long r7;
  19. unsigned long r8;
  20. unsigned long r9;
  21. unsigned long r10;
  22. unsigned long r11;
  23. unsigned long r12;
  24. unsigned long r13;
  25. unsigned long r14;
  26. unsigned long r15;
  27. unsigned long r16;
  28. unsigned long r17;
  29. unsigned long r18;
  30. unsigned long r19;
  31. unsigned long r20;
  32. unsigned long r21;
  33. unsigned long r22;
  34. unsigned long r23;
  35. unsigned long r24;
  36. unsigned long r25;
  37. unsigned long r26;
  38. unsigned long r27;
  39. unsigned long r28;
  40. unsigned long r29;
  41. unsigned long r30;
  42. unsigned long r31;
  43. unsigned long sa0;
  44. unsigned long lc0;
  45. unsigned long sa1;
  46. unsigned long lc1;
  47. unsigned long m0;
  48. unsigned long m1;
  49. unsigned long usr;
  50. unsigned long p3_0;
  51. unsigned long gp;
  52. unsigned long ugp;
  53. unsigned long pc;
  54. unsigned long cause;
  55. unsigned long badva;
  56. #if CONFIG_HEXAGON_ARCH_VERSION < 4
  57. unsigned long pad1; /* pad out to 48 words total */
  58. unsigned long pad2; /* pad out to 48 words total */
  59. unsigned long pad3; /* pad out to 48 words total */
  60. #else
  61. unsigned long cs0;
  62. unsigned long cs1;
  63. unsigned long pad1; /* pad out to 48 words total */
  64. #endif
  65. };
  66. #endif