diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-03-16 22:30:39 +0100 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-03-16 22:30:39 +0100 |
| commit | 796ce76185b00feb86f6b4f738ac6f953c247116 (patch) | |
| tree | efc18c2df1f05e8c60df2a6eda227d53a78ebba3 /arch | |
| parent | 69a92ce3077f01ce43daef5681db298594a4badc (diff) | |
| download | teachos-796ce76185b00feb86f6b4f738ac6f953c247116.tar.xz teachos-796ce76185b00feb86f6b4f738ac6f953c247116.zip | |
arch/x86_64: begin new allocator draft
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/x86_64/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | arch/x86_64/include/arch/memory/higher_half_mapper.hpp | 19 | ||||
| -rw-r--r-- | arch/x86_64/src/memory/higher_half_mapper.cpp | 29 |
3 files changed, 49 insertions, 0 deletions
diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 7bcf7c2..41932c9 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -28,6 +28,7 @@ target_sources("x86_64" PRIVATE # Memory management "src/memory/kernel_mapper.cpp" + "src/memory/higher_half_mapper.cpp" "src/memory/mmu.cpp" "src/memory/page_table.cpp" "src/memory/region_allocator.cpp" diff --git a/arch/x86_64/include/arch/memory/higher_half_mapper.hpp b/arch/x86_64/include/arch/memory/higher_half_mapper.hpp new file mode 100644 index 0000000..66fb58b --- /dev/null +++ b/arch/x86_64/include/arch/memory/higher_half_mapper.hpp @@ -0,0 +1,19 @@ +#ifndef TEACHOS_X86_64_HIGHER_HALF_MAPPER_HPP +#define TEACHOS_X86_64_HIGHER_HALF_MAPPER_HPP + +#include "kapi/memory.hpp" +namespace arch::memory +{ + + struct higher_half_mapper : kapi::memory::page_mapper + { + auto map(kapi::memory::page page, kapi::memory::frame frame, flags flags) -> std::byte * override; + + auto unmap(kapi::memory::page page) -> void override; + + auto try_unmap(kapi::memory::page page) noexcept -> bool override; + }; + +} // namespace arch::memory + +#endif
\ No newline at end of file diff --git a/arch/x86_64/src/memory/higher_half_mapper.cpp b/arch/x86_64/src/memory/higher_half_mapper.cpp new file mode 100644 index 0000000..9fe3c89 --- /dev/null +++ b/arch/x86_64/src/memory/higher_half_mapper.cpp @@ -0,0 +1,29 @@ +#include "arch/memory/higher_half_mapper.hpp" + +#include "kapi/memory.hpp" + +#include <cstddef> + +namespace arch::memory +{ + + auto higher_half_mapper::map(kapi::memory::page page, kapi::memory::frame frame, flags flags) -> std::byte * + { + static_cast<void>(page); + static_cast<void>(frame); + static_cast<void>(flags); + return nullptr; + } + + auto higher_half_mapper::unmap(kapi::memory::page page) -> void + { + static_cast<void>(page); + } + + auto higher_half_mapper::try_unmap(kapi::memory::page page) noexcept -> bool + { + static_cast<void>(page); + return false; + } + +} // namespace arch::memory
\ No newline at end of file |
