From 0f3c5c2bc02d7aa48f8edbe42a67dd91821032b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20Gm=C3=BCr?= Date: Mon, 11 Nov 2024 12:02:35 +0000 Subject: Mark the two methods that first work and then fail --- arch/x86_64/include/arch/memory/paging/kernel_mapper.hpp | 1 + arch/x86_64/src/memory/paging/inactive_page_table.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86_64/include/arch/memory/paging/kernel_mapper.hpp b/arch/x86_64/include/arch/memory/paging/kernel_mapper.hpp index 53284b6..10fad0c 100644 --- a/arch/x86_64/include/arch/memory/paging/kernel_mapper.hpp +++ b/arch/x86_64/include/arch/memory/paging/kernel_mapper.hpp @@ -76,6 +76,7 @@ namespace teachos::arch::memory::paging { auto const backup = allocator::physical_frame::containing_address(cpu::read_control_register(cpu::control_register::CR3)); + // TODO: This creates invalid page table that points to nothing, is it the frame (current level 4 page table) auto page_table_level4 = temporary_page.map_table_frame(backup, active_table); active_table[511].set_entry(inactive_table.page_table_level_4_frame, entry::PRESENT | entry::WRITABLE); diff --git a/arch/x86_64/src/memory/paging/inactive_page_table.cpp b/arch/x86_64/src/memory/paging/inactive_page_table.cpp index d2eecb8..8ebc8ce 100644 --- a/arch/x86_64/src/memory/paging/inactive_page_table.cpp +++ b/arch/x86_64/src/memory/paging/inactive_page_table.cpp @@ -12,7 +12,7 @@ namespace teachos::arch::memory::paging temporary_page & temporary_page) : page_table_level_4_frame{frame} { - // TODO: Here the exact same mapping code + // TODO: Here the exact same mapping code but it actually works?, is it the different frame? auto table = temporary_page.map_table_frame(page_table_level_4_frame, active_page_table); table.zero_entries(); table[511].set_entry(page_table_level_4_frame, entry::PRESENT | entry::WRITABLE); -- cgit v1.2.3