diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2025-10-29 11:40:49 +0100 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2025-10-29 11:40:49 +0100 |
| commit | 845a96f5e6bfbbbeba19bf3df07f0e9de53d9a88 (patch) | |
| tree | 07803f43051bdd27aa3eb947103320473b6e1b5d /arch/x86_64/src/kapi | |
| parent | e7b04ef7f5da8e014e8b85fcf65448b317cca8ff (diff) | |
| download | teachos-845a96f5e6bfbbbeba19bf3df07f0e9de53d9a88.tar.xz teachos-845a96f5e6bfbbbeba19bf3df07f0e9de53d9a88.zip | |
kapi: export frame_allocator interface
Diffstat (limited to 'arch/x86_64/src/kapi')
| -rw-r--r-- | arch/x86_64/src/kapi/memory.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86_64/src/kapi/memory.cpp b/arch/x86_64/src/kapi/memory.cpp index 55e6ba9..be47941 100644 --- a/arch/x86_64/src/kapi/memory.cpp +++ b/arch/x86_64/src/kapi/memory.cpp @@ -1,6 +1,7 @@ #include "kapi/memory.hpp" #include "kapi/memory/frame.hpp" +#include "kapi/memory/frame_allocator.hpp" #include "kapi/system.hpp" #include "x86_64/boot/boot.hpp" @@ -21,6 +22,7 @@ namespace teachos::memory namespace { auto constinit is_initialized = std::atomic_flag{}; + auto constinit allocator = static_cast<frame_allocator *>(nullptr); auto create_memory_information() -> region_allocator::memory_information { @@ -34,6 +36,16 @@ namespace teachos::memory }; } // namespace + auto active_allocator() -> frame_allocator & + { + if (!allocator) + { + system::panic("[x86_64] The frame allocator has not been set yet."); + } + + return *allocator; + } + auto init() -> void { if (is_initialized.test_and_set()) |
