summaryrefslogtreecommitdiff
path: root/kernel/src/generic/paging.hpp
diff options
context:
space:
mode:
authorcpplover0 <osdev555@yandex.com>2026-03-01 08:06:37 +0300
committercpplover0 <osdev555@yandex.com>2026-03-01 08:06:37 +0300
commit564e9b23d5647b16f43dea3f9eaf2008330e70f9 (patch)
tree99e2f283bf4ac59db7456d3a234a48000b065dc2 /kernel/src/generic/paging.hpp
parent9f0c014b08f33f44eb7134969c0e7ed509e3adfc (diff)
orange rewrite
Diffstat (limited to 'kernel/src/generic/paging.hpp')
-rw-r--r--kernel/src/generic/paging.hpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/kernel/src/generic/paging.hpp b/kernel/src/generic/paging.hpp
new file mode 100644
index 0000000..56e88cc
--- /dev/null
+++ b/kernel/src/generic/paging.hpp
@@ -0,0 +1,20 @@
+#pragma once
+#include <cstdint>
+#include <generic/arch.hpp>
+#include <generic/pmm.hpp>
+#include <generic/hhdm.hpp>
+#include <klibc/string.hpp>
+#include <generic/bootloader/bootloader.hpp>
+#include <utils/align.hpp>
+#include <utils/gobject.hpp>
+#include <klibc/stdio.hpp>
+
+namespace paging {
+ void map_kernel(std::uintptr_t root);
+ void mapentry(std::uintptr_t root, std::uint8_t type, std::uint32_t flags);
+ void map_range(std::uintptr_t root, std::uint64_t phys, std::uintptr_t virt, std::size_t size, int flags);
+ void zero_range(std::uintptr_t root, std::uintptr_t virt, std::size_t size);
+ void free_range(std::uintptr_t root, std::uintptr_t virt, std::uintptr_t len);
+ void duplicate_range(std::uintptr_t root, std::uintptr_t src_root, std::uintptr_t virt, std::uintptr_t len, std::uint32_t flags);
+ void init();
+};