diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-01-16 13:36:38 +0100 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-01-16 13:36:38 +0100 |
| commit | 7d6f0ed063790042a808f4bf07c50d308b3f2de4 (patch) | |
| tree | 1a2e1c4ed7e2f3d8e6cdcfb012e554d1a4eb1e5a /arch/x86_64/src/memory/kernel_mapper.cpp | |
| parent | 9750405757396d006ab6992fb93baf414b3e2ae8 (diff) | |
| download | kernel-7d6f0ed063790042a808f4bf07c50d308b3f2de4.tar.xz kernel-7d6f0ed063790042a808f4bf07c50d308b3f2de4.zip | |
chore: restructure namespaces
Diffstat (limited to 'arch/x86_64/src/memory/kernel_mapper.cpp')
| -rw-r--r-- | arch/x86_64/src/memory/kernel_mapper.cpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/arch/x86_64/src/memory/kernel_mapper.cpp b/arch/x86_64/src/memory/kernel_mapper.cpp index 89b2e83..08c32c5 100644 --- a/arch/x86_64/src/memory/kernel_mapper.cpp +++ b/arch/x86_64/src/memory/kernel_mapper.cpp @@ -1,9 +1,9 @@ -#include "x86_64/memory/kernel_mapper.hpp" +#include "arch/memory/kernel_mapper.hpp" #include "kapi/memory.hpp" #include "kapi/system.hpp" -#include "x86_64/boot/ld.hpp" +#include "arch/boot/ld.hpp" #include <kstd/print> @@ -19,7 +19,7 @@ #include <string_view> #include <utility> -namespace teachos::memory::x86_64 +namespace arch::memory { namespace @@ -39,15 +39,15 @@ namespace teachos::memory::x86_64 kernel_mapper::kernel_mapper(multiboot2::information_view const * mbi) : m_mbi{std::move(mbi)} - , m_kernel_load_base{std::bit_cast<std::uintptr_t>(&boot::x86_64::TEACHOS_VMA)} + , m_kernel_load_base{std::bit_cast<std::uintptr_t>(&arch::boot::TEACHOS_VMA)} {} - auto kernel_mapper::remap_kernel(page_mapper & mapper) -> void + auto kernel_mapper::remap_kernel(kapi::memory::page_mapper & mapper) -> void { auto elf_information = m_mbi->maybe_elf_symbols<elf::format::elf64>(); if (!elf_information) { - system::panic("[x86_64:MEM] ELF section information is not available."); + kapi::system::panic("[x86_64:MEM] ELF section information is not available."); } auto sections = *elf_information; @@ -61,38 +61,38 @@ namespace teachos::memory::x86_64 if (allocated_sections.empty()) { - system::panic("[x86_64:MEM] No allocated ELF sections were found."); + kapi::system::panic("[x86_64:MEM] No allocated ELF sections were found."); } std::ranges::for_each(allocated_sections, [&](auto const & section) -> auto { map_section(section, sections.name(section), mapper); }); } - auto kernel_mapper::map_section(section_header_type const & section, std::string_view name, page_mapper & mapper) - -> void + auto kernel_mapper::map_section(section_header_type const & section, std::string_view name, + kapi::memory::page_mapper & mapper) -> void { auto number_of_pages = (section.size + (PLATFORM_PAGE_SIZE - 1)) / PLATFORM_PAGE_SIZE; - auto linear_start_address = linear_address{section.virtual_load_address}; - auto physical_start_address = physical_address{section.virtual_load_address & ~m_kernel_load_base}; + auto linear_start_address = kapi::memory::linear_address{section.virtual_load_address}; + auto physical_start_address = kapi::memory::physical_address{section.virtual_load_address & ~m_kernel_load_base}; kstd::println("[x86_64:MEM] mapping {}" "\n {} bytes -> page count: {}" "\n {} @ {}", name, section.size, number_of_pages, linear_start_address, physical_start_address); - auto first_page = page::containing(linear_start_address); - auto first_frame = frame::containing(physical_start_address); + auto first_page = kapi::memory::page::containing(linear_start_address); + auto first_frame = kapi::memory::frame::containing(physical_start_address); - auto page_flags = page_mapper::flags::empty; + auto page_flags = kapi::memory::page_mapper::flags::empty; if (section.writable()) { - page_flags |= page_mapper::flags::writable; + page_flags |= kapi::memory::page_mapper::flags::writable; } if (section.executable()) { - page_flags |= page_mapper::flags::executable; + page_flags |= kapi::memory::page_mapper::flags::executable; } auto is_prefix_of_name = [=](auto prefix) -> bool { @@ -101,7 +101,7 @@ namespace teachos::memory::x86_64 if (!std::ranges::any_of(user_accessible_prefixes, is_prefix_of_name)) { - page_flags |= page_mapper::flags::supervisor_only; + page_flags |= kapi::memory::page_mapper::flags::supervisor_only; } for (auto i = 0uz; i < number_of_pages; ++i) @@ -110,4 +110,4 @@ namespace teachos::memory::x86_64 } } -} // namespace teachos::memory::x86_64
\ No newline at end of file +} // namespace arch::memory
\ No newline at end of file |
