ureg.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * This file is part of the Harvey operating system. It is subject to the
  3. * license terms of the GNU GPL v2 in LICENSE.gpl found in the top-level
  4. * directory of this distribution and at http://www.gnu.org/licenses/gpl-2.0.txt
  5. *
  6. * No part of Harvey operating system, including this file, may be copied,
  7. * modified, propagated, or distributed except according to the terms
  8. * contained in the LICENSE.gpl file.
  9. */
  10. typedef struct Ureg {
  11. uint64_t x0;
  12. uint64_t x1;
  13. uint64_t x2;
  14. uint64_t x3;
  15. uint64_t x4;
  16. uint64_t x5;
  17. uint64_t x6;
  18. uint64_t x7;
  19. uint64_t x8;
  20. uint64_t x9;
  21. uint64_t x10;
  22. uint64_t x11;
  23. uint64_t x12;
  24. uint64_t x13;
  25. uint64_t x14;
  26. uint64_t x15;
  27. union {
  28. uint64_t x16;
  29. uint64_t ip0;
  30. };
  31. union {
  32. uint64_t x17;
  33. uint64_t ip1;
  34. };
  35. uint64_t x18;
  36. uint64_t x19;
  37. uint64_t x20;
  38. uint64_t x21;
  39. uint64_t x22;
  40. uint64_t x23;
  41. uint64_t x24;
  42. uint64_t x25;
  43. uint64_t x26;
  44. uint64_t x27;
  45. uint64_t x28;
  46. union {
  47. uint64_t x29;
  48. uint64_t fp;
  49. };
  50. union {
  51. uint64_t x30;
  52. uint64_t lr;
  53. };
  54. uint64_t sp;
  55. uint64_t type; // of exception
  56. uint64_t psr;
  57. uint64_t pc; // interrupted addr
  58. } Ureg;