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