123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef ISR_H
- #define ISR_H
- #include "types.h"
- /* ISRs reserved for CPU exceptions */
- extern void isr0();
- extern void isr1();
- extern void isr2();
- extern void isr3();
- extern void isr4();
- extern void isr5();
- extern void isr6();
- extern void isr7();
- extern void isr8();
- extern void isr9();
- extern void isr10();
- extern void isr11();
- extern void isr12();
- extern void isr13();
- extern void isr14();
- extern void isr15();
- extern void isr16();
- extern void isr17();
- extern void isr18();
- extern void isr19();
- extern void isr20();
- extern void isr21();
- extern void isr22();
- extern void isr23();
- extern void isr24();
- extern void isr25();
- extern void isr26();
- extern void isr27();
- extern void isr28();
- extern void isr29();
- extern void isr30();
- extern void isr31();
- /* Struct which aggregates many registers */
- typedef struct {
- u32 ds; /* Data segment selector */
- u32 edi, esi, ebp, esp, ebx, edx, ecx, eax; /* Pushed by pusha. */
- u32 int_no, err_code; /* Interrupt number and error code (if applicable) */
- u32 eip, cs, eflags, useresp, ss; /* Pushed by the processor automatically */
- } registers_t;
- void isr_install();
- void isr_handler(registers_t r);
- #endif
|