A Total Overhaul on the Lunaix's Virtual Memory Model (#26)
[lunaix-os.git] / lunaix-os / arch / i386 / pcontext.c
index a0ff6a69f1aa0ab82c75a005731ce7a15d23363b..6b56b418d21fc1ccab194b50e8f3940b5771c1af 100644 (file)
@@ -13,17 +13,17 @@ volatile struct x86_tss _tss = { .link = 0,
 bool
 inject_transfer_context(ptr_t vm_mnt, struct transfer_context* tctx)
 {
 bool
 inject_transfer_context(ptr_t vm_mnt, struct transfer_context* tctx)
 {
-    v_mapping mapping;
-    if (!vmm_lookupat(vm_mnt, tctx->inject, &mapping)) {
+    pte_t pte;
+    if (!vmm_lookupat(vm_mnt, tctx->inject, &pte)) {
         return false;
     }
 
         return false;
     }
 
-    vmm_mount_pg(PG_MOUNT_4, mapping.pa);
+    mount_page(PG_MOUNT_4, pte_paddr(pte));
 
 
-    ptr_t mount_inject = PG_MOUNT_4 + PG_OFFSET(tctx->inject);
+    ptr_t mount_inject = PG_MOUNT_4 + va_offset(tctx->inject);
     memcpy((void*)mount_inject, &tctx->transfer, sizeof(tctx->transfer));
     
     memcpy((void*)mount_inject, &tctx->transfer, sizeof(tctx->transfer));
     
-    vmm_unmount_pg(PG_MOUNT_4);
+    unmount_page(PG_MOUNT_4);
     return true;
 }
 
     return true;
 }