X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/965940833071025bf0d386f4a9c70a5258453dbd..69777bdcab284335651a8002e2896f3862fa423d:/lunaix-os/arch/i386/pcontext.c diff --git a/lunaix-os/arch/i386/pcontext.c b/lunaix-os/arch/i386/pcontext.c index a0ff6a6..6b56b41 100644 --- a/lunaix-os/arch/i386/pcontext.c +++ b/lunaix-os/arch/i386/pcontext.c @@ -13,17 +13,17 @@ volatile struct x86_tss _tss = { .link = 0, 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; } - 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)); - vmm_unmount_pg(PG_MOUNT_4); + unmount_page(PG_MOUNT_4); return true; }