From a0d1a9ad67d183b4d18bc5fdc741abfde3b715c3 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sat, 19 Jul 2025 01:25:46 +0300 Subject: [PATCH] Kernel: Fix PIT::prescheduler_sleep_ns I don't even know what I was doing here :D --- kernel/kernel/Timer/PIT.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/kernel/kernel/Timer/PIT.cpp b/kernel/kernel/Timer/PIT.cpp index 50611d9e..c498f0f2 100644 --- a/kernel/kernel/Timer/PIT.cpp +++ b/kernel/kernel/Timer/PIT.cpp @@ -15,10 +15,10 @@ #define SELECT_CHANNEL1 0x40 #define SELECT_CHANNEL2 0x80 -#define ACCESS_HI 0x10 -#define ACCESS_LO 0x20 +#define ACCESS_LO 0x10 +#define ACCESS_HI 0x20 -#define MODE_RATE_GENERATOR 0x05 +#define MODE_RATE_GENERATOR 0x04 #define BASE_FREQUENCY 1193182 @@ -116,10 +116,7 @@ namespace Kernel while (elapsed_ticks < target_ticks) { const uint8_t current_ticks = IO::inb(TIMER0_CTL); - if (last_ticks <= current_ticks) - elapsed_ticks += current_ticks - last_ticks; - else - elapsed_ticks += 0xFF + current_ticks - last_ticks; + elapsed_ticks += static_cast(last_ticks - current_ticks); last_ticks = current_ticks; }