aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMatteo Gmür <matteo.gmuer1@ost.ch>2024-11-11 12:02:35 +0000
committerMatteo Gmür <matteo.gmuer1@ost.ch>2024-11-11 12:02:35 +0000
commit0f3c5c2bc02d7aa48f8edbe42a67dd91821032b7 (patch)
tree55b88422c54aafcc8a3af91396641a1592e2f55c /arch
parent325d540236476b50af78e5781e3afead9e910359 (diff)
downloadteachos-0f3c5c2bc02d7aa48f8edbe42a67dd91821032b7.tar.xz
teachos-0f3c5c2bc02d7aa48f8edbe42a67dd91821032b7.zip
Mark the two methods that first work and then fail
Diffstat (limited to 'arch')
-rw-r--r--arch/x86_64/include/arch/memory/paging/kernel_mapper.hpp1
-rw-r--r--arch/x86_64/src/memory/paging/inactive_page_table.cpp2
2 files changed, 2 insertions, 1 deletions
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);