aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-09-29 10:41:36 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-09-29 10:41:36 +0200
commite9b880648c18d3680ae10cc5660f0dbe981af5d8 (patch)
treea24e81e48920853ba191e8e7c6c3cfcd22194fba /kernel
parent5bad38935238da045d9fd467eae9dfd958deea34 (diff)
downloadkernel-e9b880648c18d3680ae10cc5660f0dbe981af5d8.tar.xz
kernel-e9b880648c18d3680ae10cc5660f0dbe981af5d8.zip
kapi/interrupt: rework enablement API
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kernel/main.cpp2
-rw-r--r--kernel/kernel/test_support/kapi/interrupts.cpp16
2 files changed, 15 insertions, 3 deletions
diff --git a/kernel/kernel/main.cpp b/kernel/kernel/main.cpp
index bc192950..bbbd46c0 100644
--- a/kernel/kernel/main.cpp
+++ b/kernel/kernel/main.cpp
@@ -293,7 +293,7 @@ auto main() -> int
kapi::devices::init_platform_devices();
kstd::println("[OS] Platform devices initialized.");
- kapi::interrupts::enable();
+ kapi::interrupts::enabled(true);
kstd::println("[OS] Interrupts enabled.");
auto modules_bus = kernel::devices::storage::init();
diff --git a/kernel/kernel/test_support/kapi/interrupts.cpp b/kernel/kernel/test_support/kapi/interrupts.cpp
index 00772669..79b03729 100644
--- a/kernel/kernel/test_support/kapi/interrupts.cpp
+++ b/kernel/kernel/test_support/kapi/interrupts.cpp
@@ -1,11 +1,23 @@
#include <kapi/interrupts.hpp>
+#include <atomic>
+
namespace kapi::interrupts
{
- auto enable() -> void
+ namespace
+ {
+ std::atomic_bool interrupt_state = false;
+ }
+
+ auto enabled() -> bool
+ {
+ return interrupt_state.load(std::memory_order::relaxed);
+ }
+
+ auto enabled(bool value) -> void
{
- // TODO: enable simulated interrupts.
+ interrupt_state.store(value, std::memory_order::relaxed);
}
} // namespace kapi::interrupts \ No newline at end of file