From 94cbacc9980bf760e1825ed9dd02e1676f27af35 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Thu, 16 Feb 2023 17:53:25 +0200 Subject: [PATCH] Kernel: PIT now has very barebones sleep --- kernel/include/kernel/PIT.h | 2 +- kernel/kernel/PIT.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/include/kernel/PIT.h b/kernel/include/kernel/PIT.h index 8999099f..0befacd9 100644 --- a/kernel/include/kernel/PIT.h +++ b/kernel/include/kernel/PIT.h @@ -8,7 +8,7 @@ namespace PIT { uint64_t ms_since_boot(); - void initialize(); + void sleep(uint64_t); } \ No newline at end of file diff --git a/kernel/kernel/PIT.cpp b/kernel/kernel/PIT.cpp index cc16b7d4..cf20b9df 100644 --- a/kernel/kernel/PIT.cpp +++ b/kernel/kernel/PIT.cpp @@ -50,4 +50,11 @@ namespace PIT InterruptController::get().enable_irq(PIT_IRQ); } + void sleep(uint64_t ms) + { + uint64_t end = s_system_time + ms; + while (s_system_time < end) + asm volatile("hlt"); + } + }