vfs: Remove ext2 support
[akaros.git] / kern / include / pmap.h
index 72c79cb..92500e1 100644 (file)
@@ -91,16 +91,21 @@ void        page_decref(page_t *pp);
 
 void   tlb_invalidate(pgdir_t pgdir, void *ga);
 void tlb_flush_global(void);
-bool regions_collide_unsafe(uintptr_t start1, uintptr_t end1, 
+void tlb_shootdown_global(void);
+bool regions_collide_unsafe(uintptr_t start1, uintptr_t end1,
                             uintptr_t start2, uintptr_t end2);
 
 /* Arch specific implementations for these */
+void map_segment(pgdir_t pgdir, uintptr_t va, size_t size, physaddr_t pa,
+                 int perm, int pml_shift);
+int unmap_segment(pgdir_t pgdir, uintptr_t va, size_t size);
 pte_t pgdir_walk(pgdir_t pgdir, const void *va, int create);
 int get_va_perms(pgdir_t pgdir, const void *va);
 int arch_pgdir_setup(pgdir_t boot_copy, pgdir_t *new_pd);
 physaddr_t arch_pgdir_get_cr3(pgdir_t pd);
 void arch_pgdir_clear(pgdir_t *pd);
 int arch_max_jumbo_page_shift(void);
+void arch_add_intermediate_pts(pgdir_t pgdir, uintptr_t va, size_t len);
 
 static inline page_t *ppn2page(size_t ppn)
 {
@@ -141,12 +146,12 @@ static inline void *ppn2kva(size_t pp)
        return page2kva(ppn2page(pp));
 }
 
-static inline page_t* kva2page(void* addr) 
+static inline page_t* kva2page(void* addr)
 {
        return pa2page(PADDR(addr));
 }
 
-static inline ppn_t kva2ppn(void* addr) 
+static inline ppn_t kva2ppn(void* addr)
 {
        return page2ppn(kva2page(addr));
 }