Code-base clean-up and refactoring (#47)
[lunaix-os.git] / lunaix-os / kernel / mm / vmm.c
index 6b497b8f60b0bb6c4eaea6122d6a18550d6fbe1b..180d7f40fb55e93a52b33eddb76414026b1eeb8d 100644 (file)
@@ -1,68 +1,13 @@
 #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>
 
-#include <sys/cpu.h>
-#include <sys/mm/mm_defs.h>
+#include <asm/cpu.h>
+#include <asm/mm_defs.h>
 
 LOG_MODULE("VM")
 
 
 LOG_MODULE("VM")
 
-void
-vmm_init()
-{
-    // 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,23 +37,14 @@ 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)
 {
     assert(vms_root);
 
     pte_t* ptep = mkl0tep_va(VMS_SELF, mnt);
 ptr_t
 vms_mount(ptr_t mnt, ptr_t vms_root)
 {
     assert(vms_root);
 
     pte_t* ptep = mkl0tep_va(VMS_SELF, mnt);
-    set_pte(ptep, mkpte(vms_root, KERNEL_DATA));
-    cpu_flush_page(mnt);
+    set_pte(ptep, mkpte(vms_root, KERNEL_PGTAB));
+    tlb_flush_kernel(mnt);
     return mnt;
 }
 
     return mnt;
 }
 
@@ -117,7 +53,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;
 }