aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/memory/paging_root.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/src/memory/paging_root.cpp')
-rw-r--r--arch/x86_64/src/memory/paging_root.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/x86_64/src/memory/paging_root.cpp b/arch/x86_64/src/memory/paging_root.cpp
new file mode 100644
index 0000000..d849a82
--- /dev/null
+++ b/arch/x86_64/src/memory/paging_root.cpp
@@ -0,0 +1,19 @@
+#include "x86_64/memory/paging_root.hpp"
+
+#include <bit>
+#include <cstdint>
+
+namespace teachos::memory::x86_64
+{
+
+ namespace
+ {
+ constexpr auto recursive_base = std::uintptr_t{0177777'776'776'776'776'0000uz};
+ } // namespace
+
+ auto paging_root::get() -> paging_root *
+ {
+ return std::bit_cast<paging_root *>(recursive_base);
+ }
+
+} // namespace teachos::memory::x86_64 \ No newline at end of file