apic: fix timer and keyboard handling

This commit is contained in:
2025-08-30 20:57:44 +03:00
parent fb8dd43dd3
commit 649c4c56a4
4 changed files with 79 additions and 10 deletions
+8
View File
@@ -19,6 +19,7 @@ struct interrupt_frame
uword_t ss;
};
__attribute__((interrupt)) void spurious(struct interrupt_frame *frame);
__attribute__((interrupt)) void isr_timer(struct interrupt_frame *frame);
void isr_custom();
void default_handler();
@@ -68,6 +69,8 @@ void isr_install() {
idt_set_descriptor(0x80, (uint32)sys_exit_handler, 0xEE);
idt_set_descriptor(255, (uint32)spurious, 0x8E);
idt_set(); // Load with ASM
printf("isr_install done\n");
}
@@ -102,6 +105,11 @@ void handle_page_fault(uint32_t error_code, uint32_t faulting_address)
asm("hlt");
}
__attribute__((interrupt)) void spurious(struct interrupt_frame *frame)
{
lapic_eoi();
}
__attribute__((interrupt)) void isr_timer(struct interrupt_frame *frame)
{
if(lapic_enabled)