mirror of
https://github.com/gbowne1/ClassicOS.git
synced 2025-10-13 21:25:07 -07:00
adding and fixing some missing things and some undefined
This commit is contained in:
66
kernel/idt.c
66
kernel/idt.c
@@ -8,7 +8,37 @@ idt_ptr_t idt_ptr;
|
||||
|
||||
// External assembly stubs for ISRs (provided below)
|
||||
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();
|
||||
extern void isr_default();
|
||||
|
||||
// Helper to set an IDT gate
|
||||
@@ -36,8 +66,40 @@ void idt_init() {
|
||||
}
|
||||
|
||||
// Set specific handlers
|
||||
idt_set_gate(0, (uint32_t)isr0); // Divide by zero
|
||||
idt_set_gate(13, (uint32_t)isr13); // General protection fault
|
||||
// Assign CPU exception handlers
|
||||
idt_set_gate(0, (uint32_t)isr0);
|
||||
idt_set_gate(1, (uint32_t)isr1);
|
||||
idt_set_gate(2, (uint32_t)isr2);
|
||||
idt_set_gate(3, (uint32_t)isr3);
|
||||
idt_set_gate(4, (uint32_t)isr4);
|
||||
idt_set_gate(5, (uint32_t)isr5);
|
||||
idt_set_gate(6, (uint32_t)isr6);
|
||||
idt_set_gate(7, (uint32_t)isr7);
|
||||
idt_set_gate(8, (uint32_t)isr8);
|
||||
idt_set_gate(9, (uint32_t)isr9);
|
||||
idt_set_gate(10, (uint32_t)isr10);
|
||||
idt_set_gate(11, (uint32_t)isr11);
|
||||
idt_set_gate(12, (uint32_t)isr12);
|
||||
idt_set_gate(13, (uint32_t)isr13);
|
||||
idt_set_gate(14, (uint32_t)isr14);
|
||||
idt_set_gate(15, (uint32_t)isr15);
|
||||
idt_set_gate(16, (uint32_t)isr16);
|
||||
idt_set_gate(17, (uint32_t)isr17);
|
||||
idt_set_gate(18, (uint32_t)isr18);
|
||||
idt_set_gate(19, (uint32_t)isr19);
|
||||
idt_set_gate(20, (uint32_t)isr20);
|
||||
idt_set_gate(21, (uint32_t)isr21);
|
||||
idt_set_gate(22, (uint32_t)isr22);
|
||||
idt_set_gate(23, (uint32_t)isr23);
|
||||
idt_set_gate(24, (uint32_t)isr24);
|
||||
idt_set_gate(25, (uint32_t)isr25);
|
||||
idt_set_gate(26, (uint32_t)isr26);
|
||||
idt_set_gate(27, (uint32_t)isr27);
|
||||
idt_set_gate(28, (uint32_t)isr28);
|
||||
idt_set_gate(29, (uint32_t)isr29);
|
||||
idt_set_gate(30, (uint32_t)isr30);
|
||||
idt_set_gate(31, (uint32_t)isr31);
|
||||
|
||||
|
||||
idt_load();
|
||||
}
|
||||
|
Reference in New Issue
Block a user