Kernel address space isolation and make the kernel heap global to all processes.
[lunaix-os.git] / lunaix-os / kernel / mm / vmm.c
index f791cc38969f340d49438fc748f32790ec7b2609..40c8be5885ffdf332667a82d9900a87a06de9473 100644 (file)
@@ -255,4 +255,17 @@ void*
 vmm_v2p(void* va)
 {
     return (void*)vmm_lookup(va).pa;
+}
+
+void*
+vmm_mount_pd(void* pde) {
+    x86_page_table* l1pt = (x86_page_table*)L1_BASE_VADDR;
+    l1pt->entry[(PD_MOUNT >> 22)] = NEW_L1_ENTRY(PG_PREM_RW, pde);
+    return PD_MOUNT;
+}
+
+void*
+vmm_unmount_pd() {
+    x86_page_table* l1pt = (x86_page_table*)L1_BASE_VADDR;
+    l1pt->entry[(PD_MOUNT >> 22)] = 0;
 }
\ No newline at end of file