aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/memory/cpu/cr3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/src/memory/cpu/cr3.cpp')
-rw-r--r--arch/x86_64/src/memory/cpu/cr3.cpp23
1 files changed, 0 insertions, 23 deletions
diff --git a/arch/x86_64/src/memory/cpu/cr3.cpp b/arch/x86_64/src/memory/cpu/cr3.cpp
deleted file mode 100644
index 7e48d40..0000000
--- a/arch/x86_64/src/memory/cpu/cr3.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "arch/memory/cpu/cr3.hpp"
-
-#include "arch/exception_handling/assert.hpp"
-
-namespace teachos::arch::memory::cpu
-{
- auto read_cr3_register() -> allocator::physical_address
- {
- allocator::physical_address cr3;
- asm volatile("movq %%cr3, %[output]" : [output] "=r"(cr3) : /* no input into call */ : "memory");
- return cr3;
- }
-
- auto write_cr3_register(allocator::physical_address new_p4_table_address) -> void
- {
- exception_handling::assert(new_p4_table_address % allocator::PAGE_FRAME_SIZE == 0U,
- "[CR3] Physical address to be written into register must be page aligned");
- asm volatile("movq %[input], %%cr3"
- : /* no output from call */
- : [input] "r"(new_p4_table_address)
- : "memory");
- }
-} // namespace teachos::arch::memory::cpu