ureg.h 930 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef __UREG_H
  2. #define __UREG_H
  3. #if !defined(_PLAN9_SOURCE)
  4. This header file is an extension to ANSI/POSIX
  5. #endif
  6. #define uvlong unsigned long long
  7. struct Ureg
  8. {
  9. union {
  10. uvlong pc;
  11. uvlong regs[1];
  12. };
  13. uvlong r1; /* link */
  14. union{
  15. uvlong r2;
  16. uvlong sp;
  17. uvlong usp;
  18. };
  19. uvlong r3; /* sb */
  20. uvlong r4;
  21. uvlong r5;
  22. uvlong r6; /* up in kernel */
  23. uvlong r7; /* m in kernel */
  24. union{
  25. uvlong r8;
  26. uvlong arg;
  27. uvlong ret;
  28. };
  29. uvlong r9;
  30. uvlong r10;
  31. uvlong r11;
  32. uvlong r12;
  33. uvlong r13;
  34. uvlong r14;
  35. uvlong r15;
  36. uvlong r16;
  37. uvlong r17;
  38. uvlong r18;
  39. uvlong r19;
  40. uvlong r20;
  41. uvlong r21;
  42. uvlong r22;
  43. uvlong r23;
  44. uvlong r24;
  45. uvlong r25;
  46. uvlong r26;
  47. uvlong r27;
  48. uvlong r28;
  49. uvlong r29;
  50. uvlong r30;
  51. uvlong r31;
  52. /* csrs: generally supervisor ones */
  53. uvlong status;
  54. uvlong ie;
  55. union {
  56. uvlong cause;
  57. uvlong type;
  58. };
  59. uvlong tval; /* faulting address */
  60. uvlong curmode;
  61. };
  62. #endif