ureg.h 809 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. struct Ureg
  2. {
  3. union {
  4. uintptr pc;
  5. uintptr regs[1];
  6. };
  7. uintptr r1; /* link */
  8. union{
  9. uintptr r2;
  10. uintptr sp;
  11. uintptr usp;
  12. };
  13. uintptr r3; /* sb */
  14. uintptr r4;
  15. uintptr r5;
  16. uintptr r6; /* up in kernel */
  17. uintptr r7; /* m in kernel */
  18. union{
  19. uintptr r8;
  20. uintptr arg;
  21. uintptr ret;
  22. };
  23. uintptr r9;
  24. uintptr r10;
  25. uintptr r11;
  26. uintptr r12;
  27. uintptr r13;
  28. uintptr r14;
  29. uintptr r15;
  30. uintptr r16;
  31. uintptr r17;
  32. uintptr r18;
  33. uintptr r19;
  34. uintptr r20;
  35. uintptr r21;
  36. uintptr r22;
  37. uintptr r23;
  38. uintptr r24;
  39. uintptr r25;
  40. uintptr r26;
  41. uintptr r27;
  42. uintptr r28;
  43. uintptr r29;
  44. uintptr r30;
  45. uintptr r31;
  46. /* csrs: generally supervisor ones */
  47. uintptr status;
  48. uintptr ie;
  49. union {
  50. uintptr cause;
  51. uintptr type;
  52. };
  53. uintptr tval; /* faulting address */
  54. uintptr curmode;
  55. };