diff --git a/src/x86/isr.c b/src/x86/isr.c index 8d36841..339a1f8 100644 --- a/src/x86/isr.c +++ b/src/x86/isr.c @@ -1,5 +1,6 @@ #include "isr.h" #include "stdio.h" +#include "apic.h" __attribute__ ((interrupt)) void isr_division_by_zero(void* frame) @@ -25,6 +26,13 @@ void isr_double_fault(void* frame, unsigned int error) asm("hlt"); } +__attribute__ ((interrupt)) +void isr_timer(void* frame) +{ + printf("Timer tick.\n"); + apic_eoi(); +} + __attribute__ ((naked)) void isr_ap_start(void* frame) { diff --git a/src/x86/isr.h b/src/x86/isr.h index 1725d53..272e224 100644 --- a/src/x86/isr.h +++ b/src/x86/isr.h @@ -12,6 +12,9 @@ void isr_page_fault(void* frame, unsigned int error); __attribute__ ((interrupt)) void isr_double_fault(void* frame, unsigned int error); +__attribute__ ((interrupt)) +void isr_timer(void* frame); + __attribute__ ((naked)) void isr_ap_start(void* frame);