chore: fix almost *ALL* warnings.
[lunaix-os.git] / lunaix-os / kernel / mm / cow.c
index 5f35e9b24ae27c48ec874edab57adf680f2dcf5a..6b46e485ad80deab9b0794f6a8c4d18b13586b9e 100644 (file)
@@ -1,11 +1,12 @@
+#include <lunaix/mm/pmm.h>
 #include <lunaix/mm/vmm.h>
 
-void*
-vmm_dup_page(pid_t pid, void* pa)
+ptr_t
+vmm_dup_page(pid_t pid, ptr_t pa)
 {
-    void* new_ppg = pmm_alloc_page(pid, 0);
-    vmm_set_mapping(PD_REFERENCED, PG_MOUNT_3, new_ppg, PG_PREM_RW);
-    vmm_set_mapping(PD_REFERENCED, PG_MOUNT_4, pa, PG_PREM_RW);
+    ptr_t new_ppg = pmm_alloc_page(pid, 0);
+    vmm_set_mapping(VMS_SELF, PG_MOUNT_3, new_ppg, PG_PREM_RW, VMAP_NULL);
+    vmm_set_mapping(VMS_SELF, PG_MOUNT_4, pa, PG_PREM_RW, VMAP_NULL);
 
     asm volatile("movl %1, %%edi\n"
                  "movl %2, %%esi\n"
@@ -14,8 +15,8 @@ vmm_dup_page(pid_t pid, void* pa)
                  "r"(PG_MOUNT_4)
                  : "memory", "%edi", "%esi");
 
-    vmm_del_mapping(PD_REFERENCED, PG_MOUNT_3);
-    vmm_del_mapping(PD_REFERENCED, PG_MOUNT_4);
+    vmm_del_mapping(VMS_SELF, PG_MOUNT_3);
+    vmm_del_mapping(VMS_SELF, PG_MOUNT_4);
 
     return new_ppg;
 }
\ No newline at end of file