/*===========================================================================* * pt_free * *===========================================================================*/ void pt_free(pt_t *pt) { /* Free memory associated with this pagetable. */ int i; for(i = 0; i < ARCH_VM_DIR_ENTRIES; i++) if(pt->pt_pt[i]) vm_freepages((vir_bytes) pt->pt_pt[i], 1); return; }
/*===========================================================================* * pt_free * *===========================================================================*/ PUBLIC void pt_free(pt_t *pt) { /* Free memory associated with this pagetable. */ int i; for(i = 0; i < I386_VM_DIR_ENTRIES; i++) if(pt->pt_pt[i]) vm_freepages((vir_bytes) pt->pt_pt[i], I386_VM_PFA(pt->pt_dir[i]), 1, VMP_PAGETABLE); return; }
int munmap(void * addr, size_t len) { vm_freepages((vir_bytes) addr, roundup(len, VM_PAGE_SIZE)/VM_PAGE_SIZE); return 0; }