aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/kapi/memory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/src/kapi/memory.cpp')
-rw-r--r--arch/x86_64/src/kapi/memory.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/x86_64/src/kapi/memory.cpp b/arch/x86_64/src/kapi/memory.cpp
index 61d462f..e05fde9 100644
--- a/arch/x86_64/src/kapi/memory.cpp
+++ b/arch/x86_64/src/kapi/memory.cpp
@@ -19,19 +19,23 @@ namespace teachos::memory
namespace
{
+ // NOLINTBEGIN(cppcoreguidelines-avoid-non-const-global-variables)
auto constinit is_initialized = std::atomic_flag{};
auto constinit allocator = static_cast<frame_allocator *>(nullptr);
+ // NOLINTEND(cppcoreguidelines-avoid-non-const-global-variables)
auto create_memory_information() -> x86_64::region_allocator::memory_information
{
auto const & mbi = boot::x86_64::multiboot_information_pointer.get();
auto map = mbi->memory_map();
- return {std::make_pair(physical_address{&boot::x86_64::_start_physical},
- physical_address{&boot::x86_64::_end_physical}),
- std::make_pair(physical_address{std::bit_cast<std::byte *>(mbi)},
- physical_address{std::bit_cast<std::byte *>(mbi) + mbi->size_bytes()}),
- map};
+ // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic)
+ return {.image_range = std::make_pair(physical_address{&boot::x86_64::_start_physical},
+ physical_address{&boot::x86_64::_end_physical}),
+ .mbi_range = std::make_pair(physical_address{std::bit_cast<std::byte *>(mbi)},
+ physical_address{std::bit_cast<std::byte *>(mbi) + mbi->size_bytes()}),
+ .memory_map = map};
+ // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
};
auto create_early_frame_allocator()