From 50fcaa26738a4701aaab79d4f5b5637914f52bfe Mon Sep 17 00:00:00 2001 From: ngiddings Date: Thu, 15 Apr 2021 07:22:01 -0500 Subject: [PATCH] Added timer ISR --- src/x86/isr.c | 8 ++++++++ src/x86/isr.h | 3 +++ 2 files changed, 11 insertions(+) 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);