+ ptr_t va = page_addr(ptep_pfn(ptep));
+
+ tlb_flush_kernel_ranged(va, n);
+
+ return va;
+}
+
+void
+vunmap(ptr_t ptr, struct leaflet* leaflet)
+{
+ pte_t* ptep;
+ unsigned int npages;
+
+ assert(start <= ptr && ptr <= VMAP_END);
+
+ npages = leaflet_nfold(leaflet);
+ ptep = mkptep_va(VMS_SELF, ptr);
+
+ vmm_unset_ptes(ptep, npages);
+
+ tlb_flush_kernel_ranged(ptr, npages);