Set the timer to OneShot mode

This commit is contained in:
Alex 2022-11-01 01:55:16 +02:00
parent 0f16d63553
commit 3e33106a25
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD

View File

@ -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);