interrupt.hpp 717 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include <stdint.h>
  3. #include <types/types.h>
  4. struct saved_regs {
  5. unsigned long rax;
  6. unsigned long rbx;
  7. unsigned long rcx;
  8. unsigned long rdx;
  9. unsigned long rdi;
  10. unsigned long rsi;
  11. unsigned long r8;
  12. unsigned long r9;
  13. unsigned long r10;
  14. unsigned long r11;
  15. unsigned long r12;
  16. unsigned long r13;
  17. unsigned long r14;
  18. unsigned long r15;
  19. unsigned long rbp;
  20. };
  21. struct interrupt_stack {
  22. saved_regs regs;
  23. unsigned long int_no;
  24. unsigned long error_code;
  25. uintptr_t v_rip;
  26. unsigned long cs;
  27. unsigned long flags;
  28. uintptr_t rsp;
  29. unsigned long ss;
  30. };
  31. struct mmx_registers {
  32. uint8_t data[512]; // TODO: list of content
  33. };