From 8ac3b7c5dfd6917eac1ffb117ee48231032ce754 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 24 Jul 2026 23:12:23 +0200 Subject: kernel: remove boot modules registry --- arch/x86_64/kapi/boot_modules.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'arch/x86_64/kapi/boot_modules.cpp') diff --git a/arch/x86_64/kapi/boot_modules.cpp b/arch/x86_64/kapi/boot_modules.cpp index 136eb30d..c86b9cf7 100644 --- a/arch/x86_64/kapi/boot_modules.cpp +++ b/arch/x86_64/kapi/boot_modules.cpp @@ -4,10 +4,12 @@ #include #include +#include #include -#include +#include #include +#include #include #include @@ -15,24 +17,27 @@ #include #include #include +#include namespace kapi::boot_modules { - auto init() -> void + auto init(kapi::devices::bus & bus) -> void { - registry::init(); - - kstd::println("[x86_64:BOOT_MODULES] Registering boot modules."); + kstd::println("[x86_64:BOOT_MODULES] Attaching boot modules."); auto modules = boot::bootstrap_information.mbi->modules(); - std::ranges::for_each(modules, [](auto const & module) { - registry::get().add(kapi::boot_modules::module{ + + std::ranges::for_each(std::views::enumerate(modules), [&bus](auto entry) { + auto [index, module] = entry; + auto boot_module = kapi::boot_modules::module{ .name = module.string(), .start_address = memory::linear_address{module.start_address + std::bit_cast(&arch::boot::TEACHOS_VMA)}, - .size = module.end_address - module.start_address, - }); + .size = module.end_address - module.start_address}; + auto device = kstd::make_shared(index, boot_module); + bus.add_child(device); }); } + } // namespace kapi::boot_modules \ No newline at end of file -- cgit v1.2.3