From a6166befa7421be233ece97e184139870bbc0af7 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 16 Jul 2026 14:16:33 +0200 Subject: kapi: introduce device interfaces --- kernel/kapi/devices.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'kernel/kapi/devices.cpp') diff --git a/kernel/kapi/devices.cpp b/kernel/kapi/devices.cpp index de4bf9e5..ef72c667 100644 --- a/kernel/kapi/devices.cpp +++ b/kernel/kapi/devices.cpp @@ -3,6 +3,7 @@ #include #include +#include #include #include @@ -25,12 +26,13 @@ namespace kapi::devices auto init() -> void { - auto static is_initialized = std::atomic_flag{}; - if (is_initialized.test_and_set()) + if (root_bus.has_value()) { - return; + kapi::system::panic("[OS:DEV] The device subsystem has already been initialized"); } + interface_registry::init(); + auto & bus = root_bus.emplace(); register_device(bus); bus.init(); @@ -83,4 +85,15 @@ namespace kapi::devices return nullptr; } -} // namespace kapi::devices \ No newline at end of file +} // namespace kapi::devices + +namespace kapi::test_support::devices +{ + auto deinit() -> void + { + deinit_interface_registry(); + + kapi::devices::root_bus.reset(); + kapi::devices::next_major_number = 1; + } +} // namespace kapi::test_support::devices \ No newline at end of file -- cgit v1.2.3