Kernel: Add basic HPET support to replace PIT if exists

This works same way as the PIT implementation; calls Scheduler every
milli second.
This commit is contained in:
2023-08-04 15:15:45 +03:00
parent ea4a70c3b3
commit 1fa7a1cac4
4 changed files with 151 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
#include <kernel/Scheduler.h>
#include <kernel/Timer/HPET.h>
#include <kernel/Timer/PIT.h>
#include <kernel/Timer/Timer.h>
@@ -32,6 +33,15 @@ namespace Kernel
m_rtc = MUST(BAN::UniqPtr<RTC>::create());
m_boot_time = BAN::to_unix_time(m_rtc->get_current_time());
if (auto res = HPET::create(); res.is_error())
dwarnln("HPET: {}", res.error());
else
{
m_timer = res.release_value();
dprintln("HPET initialized");
return;
}
if (auto res = PIT::create(); res.is_error())
dwarnln("PIT: {}", res.error());
else