apic: fix timer and keyboard handling
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user