Unifying the Lunaix's Physical Memory Model (#28)
[lunaix-os.git] / lunaix-os / kernel / mm / vmm.c
index 6b497b8f60b0bb6c4eaea6122d6a18550d6fbe1b..d7d504ed3704d829b6c90071ae6b4db50314576a 100644 (file)
@@ -1,6 +1,5 @@
 #include <klibc/string.h>
 #include <klibc/string.h>
-#include <lunaix/mm/pmm.h>
-#include <lunaix/mm/vmm.h>
+#include <lunaix/mm/page.h>
 #include <lunaix/spike.h>
 #include <lunaix/syslog.h>
 
 #include <lunaix/spike.h>
 #include <lunaix/syslog.h>
 
@@ -15,54 +14,6 @@ vmm_init()
     // XXX: something here?
 }
 
     // XXX: something here?
 }
 
-pte_t 
-vmm_alloc_page(pte_t* ptep, pte_t pte)
-{
-    ptr_t pa = pmm_alloc_page(PP_FGPERSIST);
-    if (!pa) {
-        return null_pte;
-    }
-
-    pte = pte_setpaddr(pte, pa);
-    pte = pte_mkloaded(pte);
-    set_pte(ptep, pte);
-
-    mount_page(PG_MOUNT_1, pa);
-    memset((void*)PG_MOUNT_1, 0, LFT_SIZE);
-    unmount_page(PG_MOUNT_1);
-
-    cpu_flush_page((ptr_t)ptep);
-
-    return pte;
-}
-
-int
-vmm_set_mapping(ptr_t mnt, ptr_t va, ptr_t pa, pte_attr_t prot)
-{
-    assert(!va_offset(va));
-
-    pte_t* ptep = mkptep_va(mnt, va);
-    pte_t  pte  = mkpte(pa, prot);
-
-    set_pte(ptep, pte);
-
-    return 1;
-}
-
-ptr_t
-vmm_del_mapping(ptr_t mnt, ptr_t va)
-{
-    assert(!va_offset(va));
-
-    pte_t* ptep = mkptep_va(mnt, va);
-
-    pte_t old = *ptep;
-
-    set_pte(ptep, null_pte);
-
-    return pte_paddr(old);
-}
-
 pte_t
 vmm_tryptep(pte_t* ptep, size_t lvl_size)
 {
 pte_t
 vmm_tryptep(pte_t* ptep, size_t lvl_size)
 {
@@ -92,15 +43,6 @@ vmm_tryptep(pte_t* ptep, size_t lvl_size)
     return *_ptep;
 }
 
     return *_ptep;
 }
 
-ptr_t
-vmm_v2pat(ptr_t mnt, ptr_t va)
-{
-    ptr_t  va_off = va_offset(va);
-    pte_t* ptep   = mkptep_va(mnt, va);
-
-    return pte_paddr(pte_at(ptep)) + va_off;
-}
-
 ptr_t
 vms_mount(ptr_t mnt, ptr_t vms_root)
 {
 ptr_t
 vms_mount(ptr_t mnt, ptr_t vms_root)
 {
@@ -108,7 +50,7 @@ vms_mount(ptr_t mnt, ptr_t vms_root)
 
     pte_t* ptep = mkl0tep_va(VMS_SELF, mnt);
     set_pte(ptep, mkpte(vms_root, KERNEL_DATA));
 
     pte_t* ptep = mkl0tep_va(VMS_SELF, mnt);
     set_pte(ptep, mkpte(vms_root, KERNEL_DATA));
-    cpu_flush_page(mnt);
+    tlb_flush_kernel(mnt);
     return mnt;
 }
 
     return mnt;
 }
 
@@ -117,7 +59,7 @@ vms_unmount(ptr_t mnt)
 {
     pte_t* ptep = mkl0tep_va(VMS_SELF, mnt);
     set_pte(ptep, null_pte);
 {
     pte_t* ptep = mkl0tep_va(VMS_SELF, mnt);
     set_pte(ptep, null_pte);
-    cpu_flush_page(mnt);
+    tlb_flush_kernel(mnt);
     return mnt;
 }
 
     return mnt;
 }