1
0

isr.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef ISR_H
  2. #define ISR_H
  3. #include "types.h"
  4. /* ISRs reserved for CPU exceptions */
  5. extern void isr0();
  6. extern void isr1();
  7. extern void isr2();
  8. extern void isr3();
  9. extern void isr4();
  10. extern void isr5();
  11. extern void isr6();
  12. extern void isr7();
  13. extern void isr8();
  14. extern void isr9();
  15. extern void isr10();
  16. extern void isr11();
  17. extern void isr12();
  18. extern void isr13();
  19. extern void isr14();
  20. extern void isr15();
  21. extern void isr16();
  22. extern void isr17();
  23. extern void isr18();
  24. extern void isr19();
  25. extern void isr20();
  26. extern void isr21();
  27. extern void isr22();
  28. extern void isr23();
  29. extern void isr24();
  30. extern void isr25();
  31. extern void isr26();
  32. extern void isr27();
  33. extern void isr28();
  34. extern void isr29();
  35. extern void isr30();
  36. extern void isr31();
  37. /* Struct which aggregates many registers */
  38. typedef struct {
  39. u32 ds; /* Data segment selector */
  40. u32 edi, esi, ebp, esp, ebx, edx, ecx, eax; /* Pushed by pusha. */
  41. u32 int_no, err_code; /* Interrupt number and error code (if applicable) */
  42. u32 eip, cs, eflags, useresp, ss; /* Pushed by the processor automatically */
  43. } registers_t;
  44. void isr_install();
  45. void isr_handler(registers_t r);
  46. #endif