From 3e33106a254545b29a915fe00833443495d8f878 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 1 Nov 2022 01:55:16 +0200 Subject: [PATCH] Set the timer to OneShot mode --- .../cpu/AdvancedProgrammableInterruptController.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Architecture/amd64/cpu/AdvancedProgrammableInterruptController.cpp b/Architecture/amd64/cpu/AdvancedProgrammableInterruptController.cpp index ad7c1f4..f4bd52f 100644 --- a/Architecture/amd64/cpu/AdvancedProgrammableInterruptController.cpp +++ b/Architecture/amd64/cpu/AdvancedProgrammableInterruptController.cpp @@ -286,13 +286,7 @@ namespace APIC { } - void Timer::OnInterruptReceived(TrapFrame *Frame) - { - // fixme("APIC IRQ0 INTERRUPT RECEIVED ON CPU %d", rdmsr(MSR_FS_BASE)); - // UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM1).Write('\n'); - // UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM1).Write('H'); - // UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM1).Write('\n'); - } + void Timer::OnInterruptReceived(TrapFrame *Frame) { debug("APIC IRQ0 INTERRUPT RECEIVED ON CPU %d", GetCurrentCPU()->ID); } void Timer::OneShot(uint32_t Vector, uint64_t Miliseconds) { @@ -335,7 +329,7 @@ namespace APIC LVTTimer timer = {.raw = 0}; timer.Vector = IRQ0; timer.Mask = Unmasked; - timer.TimerMode = Periodic; + timer.TimerMode = LVTTimerMode::OneShot; // Initialize APIC timer this->lapic->Write(APIC_TDCR, Divider);