summaryrefslogtreecommitdiffstats
path: root/arch/x86_64/hal/paging.h
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-09-12 22:00:09 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-09-12 22:00:09 -0400
commit53fa3cd2bfdb122d773024612d8c1d71f0dd8188 (patch)
tree5ffe81718b400031ca9b3b68a6d152c574270af2 /arch/x86_64/hal/paging.h
parent1d1a5cde7de28752727e3d56305a74afac8848ff (diff)
downloadjove-kernel-53fa3cd2bfdb122d773024612d8c1d71f0dd8188.tar.gz
jove-kernel-53fa3cd2bfdb122d773024612d8c1d71f0dd8188.tar.bz2
jove-kernel-53fa3cd2bfdb122d773024612d8c1d71f0dd8188.zip
add paging support
Diffstat (limited to 'arch/x86_64/hal/paging.h')
-rw-r--r--arch/x86_64/hal/paging.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86_64/hal/paging.h b/arch/x86_64/hal/paging.h
index 5736326..754ac99 100644
--- a/arch/x86_64/hal/paging.h
+++ b/arch/x86_64/hal/paging.h
@@ -42,6 +42,11 @@ extern void *_kernel_physptr;
#define PMLI_SHL(l) (12 + (l * 9))
#define PMLI_MASK(l) (~0xFFFFULL << PMLI_SHL(l))
+#define PML4I(v) (((v) >> 39) & 0x1FF)
+#define PML3I(v) (((v) >> 30) & 0x1FF)
+#define PML2I(v) (((v) >> 21) & 0x1FF)
+#define PML1I(v) (((v) >> 12) & 0x1FF)
+
#define IDENT_VIRT_BASE 0xFFFF800000000000ULL
#define KERNEL_VIRT_BASE 0xFFFFFFFF80000000ULL
#define KPTR_TOPHYS(v) (((uintptr_t)v) - KERNEL_VIRT_BASE + (uintptr_t)_kernel_physptr)