From c4f8ef91f18d854a4ede7a94e95b2eab898d6963 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sun, 10 Aug 2025 15:40:19 -0400 Subject: working usermode objdir iteration --- arch/x86_64/page_directory.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'arch/x86_64/page_directory.c') diff --git a/arch/x86_64/page_directory.c b/arch/x86_64/page_directory.c index 0506703..bcc71cf 100644 --- a/arch/x86_64/page_directory.c +++ b/arch/x86_64/page_directory.c @@ -6,6 +6,7 @@ #include "object.h" #include "string.h" #include "jove.h" +#include physptr_t s_kpbase(void); @@ -45,6 +46,12 @@ pmle_get_page(pmle_t entry) return vmem_phys_tovirt(pptr); } +uint8_t +pmle_level(pmle_t entry) +{ + return entry.osflg; +} + __attribute__((aligned(0x1000))) pmle_t s_kernel_pml4[512]; // Page L4 __attribute__((aligned(0x1000))) pmle_t s_kernel_pml3[512]; // Page L3 __attribute__((aligned(0x1000))) pmle_t s_kernel_pml2[512]; // Page directory @@ -107,8 +114,8 @@ vmem_setup(void) //Add page mapping object to init directory. uint8_t pm_i = _initDirectory.self.data++; _initDirectory.entries[pm_i] = (objdir_entry_t) { - .type = KO_MEMORY_MAPPING_PAGE, - .data = kernel_pml4_base + .type = KO_MEMORY_MAPPING, + .data = kernel_pml4_base | 3 }; _initData.pm_object = pm_i; } -- cgit v1.2.1