aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-03-16 11:29:42 +0100
committerFelix Morgner <felix.morgner@ost.ch>2026-03-16 11:29:42 +0100
commit5c251debfbef98360f2e00c938ef88d652469493 (patch)
tree78d5a4c1503fd38f6dec64b10792c3bda90762b3 /arch
parent913f40cbf8e578323009c0dcd6a22e99668a0010 (diff)
downloadteachos-5c251debfbef98360f2e00c938ef88d652469493.tar.xz
teachos-5c251debfbef98360f2e00c938ef88d652469493.zip
x86_64/memory: fix page table flag setting
Diffstat (limited to 'arch')
-rw-r--r--arch/x86_64/include/arch/memory/page_table.hpp2
-rw-r--r--arch/x86_64/kapi/memory.cpp4
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86_64/include/arch/memory/page_table.hpp b/arch/x86_64/include/arch/memory/page_table.hpp
index 778c201..e00e0a4 100644
--- a/arch/x86_64/include/arch/memory/page_table.hpp
+++ b/arch/x86_64/include/arch/memory/page_table.hpp
@@ -334,7 +334,7 @@ namespace arch::memory
result |= table_flags::disable_cache;
}
- if ((flags & mapper_flags::supervisor_only) != mapper_flags::empty)
+ if ((flags & mapper_flags::supervisor_only) == mapper_flags::empty)
{
result |= table_flags::user_accessible;
}
diff --git a/arch/x86_64/kapi/memory.cpp b/arch/x86_64/kapi/memory.cpp
index 6bbfad3..11bc69c 100644
--- a/arch/x86_64/kapi/memory.cpp
+++ b/arch/x86_64/kapi/memory.cpp
@@ -138,7 +138,7 @@ namespace kapi::memory
auto page = page::containing(vga_virtual_start);
auto frame = frame::containing(vga_physical_start);
- mapper.map(page, frame, page_mapper::flags::writable);
+ mapper.map(page, frame, page_mapper::flags::writable | page_mapper::flags::supervisor_only);
}
auto remap_multiboot_information(page_mapper & mapper) -> void
@@ -153,7 +153,7 @@ namespace kapi::memory
{
auto page = page::containing(mbi_virtual_start) + i;
auto frame = frame::containing(mbi_physical_start) + i;
- mapper.map(page, frame, page_mapper::flags::empty);
+ mapper.map(page, frame, page_mapper::flags::supervisor_only);
}
}