aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-07-25 00:14:33 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-25 00:14:33 +0200
commitd3296a836c57d82942b7858864e7b73b4e5bae4a (patch)
tree4cc2b2886b166744a9d4960bb496d5471ea05d5f
parent4c7b7aa2d3fb765d71dfd26e25fce4f9086432ee (diff)
downloadkernel-d3296a836c57d82942b7858864e7b73b4e5bae4a.tar.xz
kernel-d3296a836c57d82942b7858864e7b73b4e5bae4a.zip
kernel: pull out driver initialization
-rw-r--r--kernel/kapi/devices.cpp2
-rw-r--r--kernel/kernel/main.cpp4
-rw-r--r--kernel/kernel/test_support/state_reset_listener.cpp6
3 files changed, 7 insertions, 5 deletions
diff --git a/kernel/kapi/devices.cpp b/kernel/kapi/devices.cpp
index 5e08874e..c3c9e595 100644
--- a/kernel/kapi/devices.cpp
+++ b/kernel/kapi/devices.cpp
@@ -1,7 +1,6 @@
#include <kapi/devices.hpp>
#include <kernel/bus/root.hpp>
-#include <kernel/drivers/init.hpp>
#include <kapi/system.hpp>
#include <kapi/test_support/devices.hpp>
@@ -29,7 +28,6 @@ namespace kapi::devices
device_registry::init();
interface_registry::init();
- kernel::drivers::init();
root_bus = kstd::make_shared<kernel::bus::root>();
device_registry::get().add(root_bus);
diff --git a/kernel/kernel/main.cpp b/kernel/kernel/main.cpp
index 9d841f79..dc57fb55 100644
--- a/kernel/kernel/main.cpp
+++ b/kernel/kernel/main.cpp
@@ -1,5 +1,6 @@
#include "kernel/filesystem/type_registry.hpp"
#include <kernel/devices/storage.hpp>
+#include <kernel/drivers/init.hpp>
#include <kernel/filesystem/open_file_table.hpp>
#include <kernel/filesystem/vfs.hpp>
#include <kernel/memory.hpp>
@@ -158,6 +159,9 @@ auto main() -> int
kapi::devices::init();
kstd::println("[OS] Basic device and driver subsystem initialized.");
+ kernel::drivers::init();
+ kstd::println("[OS] Generic drivers initialized.");
+
kapi::devices::init_platform_drivers();
kstd::println("[OS] Platform drivers initialized.");
diff --git a/kernel/kernel/test_support/state_reset_listener.cpp b/kernel/kernel/test_support/state_reset_listener.cpp
index 13561644..42f5539c 100644
--- a/kernel/kernel/test_support/state_reset_listener.cpp
+++ b/kernel/kernel/test_support/state_reset_listener.cpp
@@ -1,5 +1,5 @@
#include <kernel/devices/storage.hpp>
-#include <kernel/drivers/storage/ram_disk.hpp>
+#include <kernel/drivers/init.hpp>
#include <kernel/filesystem/open_file_table.hpp>
#include <kernel/filesystem/type_registry.hpp>
#include <kernel/filesystem/vfs.hpp>
@@ -38,10 +38,10 @@ struct state_reset_listener : Catch::EventListenerBase
kapi::memory::init();
kapi::devices::init();
+ kernel::drivers::init();
+
std::ignore = kernel::devices::storage::init();
kernel::filesystem::open_file_table::init();
-
- kapi::devices::driver_registry::get().add(kstd::make_shared<kernel::drivers::storage::ram_disk>());
}
void testCaseEnded(Catch::TestCaseStats const &) override