From 035c8d6e38fd901e6769a81f67b8d9e1e3fcea20 Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Thu, 26 Feb 2026 11:24:27 +0100 Subject: implemented boot_modules and boot_module_registry, init boot_modules in kernel main --- kernel/kapi/boot_modules.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 kernel/kapi/boot_modules.cpp (limited to 'kernel/kapi/boot_modules.cpp') diff --git a/kernel/kapi/boot_modules.cpp b/kernel/kapi/boot_modules.cpp new file mode 100644 index 0000000..3f0f044 --- /dev/null +++ b/kernel/kapi/boot_modules.cpp @@ -0,0 +1,21 @@ +#include "kapi/boot_modules.hpp" + +#include "kapi/system.hpp" + +#include + +namespace kapi::boot_modules +{ + + constinit auto static registry = std::optional{}; + + auto set_boot_module_registry(boot_module_registry & registry) -> void + { + if (kapi::boot_modules::registry) + { + system::panic("[x86_64] Boot module registry has already been set."); + } + + kapi::boot_modules::registry = registry; + } +} // namespace kapi::boot_modules -- cgit v1.2.3 From 296d58550e8e1202d83e66034c24e9454a1b67dc Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Fri, 27 Feb 2026 23:23:18 +0100 Subject: - add boot_module_registry getter --- kernel/kapi/boot_modules.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'kernel/kapi/boot_modules.cpp') diff --git a/kernel/kapi/boot_modules.cpp b/kernel/kapi/boot_modules.cpp index 3f0f044..5a0ef7f 100644 --- a/kernel/kapi/boot_modules.cpp +++ b/kernel/kapi/boot_modules.cpp @@ -7,15 +7,28 @@ namespace kapi::boot_modules { - constinit auto static registry = std::optional{}; + namespace + { + constinit auto static registry = std::optional{}; + } // namespace - auto set_boot_module_registry(boot_module_registry & registry) -> void + auto set_boot_module_registry(boot_module_registry & new_registry) -> void { - if (kapi::boot_modules::registry) + if (registry) { system::panic("[x86_64] Boot module registry has already been set."); } - kapi::boot_modules::registry = registry; + registry = new_registry; + } + + auto get_boot_module_registry() -> boot_module_registry & + { + if (!registry) + { + system::panic("[x86_64] Boot module registry has not been initialized."); + } + + return *registry; } } // namespace kapi::boot_modules -- cgit v1.2.3 From 3c9ad45492d7417c65594fa7fa2fb9a8d5439276 Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Thu, 9 Apr 2026 08:32:51 +0200 Subject: add deinit functions for singletons in tests --- kernel/kapi/boot_modules.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'kernel/kapi/boot_modules.cpp') diff --git a/kernel/kapi/boot_modules.cpp b/kernel/kapi/boot_modules.cpp index 5a0ef7f..0549368 100644 --- a/kernel/kapi/boot_modules.cpp +++ b/kernel/kapi/boot_modules.cpp @@ -4,14 +4,13 @@ #include -namespace kapi::boot_modules +namespace { + constinit auto static registry = std::optional{}; +} // namespace - namespace - { - constinit auto static registry = std::optional{}; - } // namespace - +namespace kapi::boot_modules +{ auto set_boot_module_registry(boot_module_registry & new_registry) -> void { if (registry) @@ -32,3 +31,11 @@ namespace kapi::boot_modules return *registry; } } // namespace kapi::boot_modules + +namespace kernel::tests::boot_modules +{ + auto deinit() -> void + { + registry.reset(); + } +} // namespace kernel::tests::boot_modules -- cgit v1.2.3 From f6f10575f75ac23d06e1d94f7861611503daa7af Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 23 Apr 2026 14:03:28 +0200 Subject: chore: banish relative includes --- kernel/kapi/boot_modules.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'kernel/kapi/boot_modules.cpp') diff --git a/kernel/kapi/boot_modules.cpp b/kernel/kapi/boot_modules.cpp index 0549368..1ad541b 100644 --- a/kernel/kapi/boot_modules.cpp +++ b/kernel/kapi/boot_modules.cpp @@ -1,6 +1,6 @@ -#include "kapi/boot_modules.hpp" +#include -#include "kapi/system.hpp" +#include #include -- cgit v1.2.3 From df549fb7a3ed3ff9d675da6a90595c78bed7a1f8 Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Sun, 10 May 2026 13:20:47 +0200 Subject: return const boot_module_registry reference --- kernel/kapi/boot_modules.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'kernel/kapi/boot_modules.cpp') diff --git a/kernel/kapi/boot_modules.cpp b/kernel/kapi/boot_modules.cpp index 1ad541b..5629b77 100644 --- a/kernel/kapi/boot_modules.cpp +++ b/kernel/kapi/boot_modules.cpp @@ -21,7 +21,7 @@ namespace kapi::boot_modules registry = new_registry; } - auto get_boot_module_registry() -> boot_module_registry & + auto get_boot_module_registry() -> boot_module_registry const & { if (!registry) { -- cgit v1.2.3