FreeBSD/sys/i386/i386/pmap.c
/*
 * Remove a single page from a process address space
 */
Remove a single page from a process address space
Remove a single page from a process address space
static void
pmap_remove_page(pmap_t pmap, vm_offset_t va, struct spglist *free)
{
	pt_entry_t *pte;
	rw_assert(&pvh_global_lock, RA_WLOCKED);
	KASSERT(curthread->td_pinned > 0, ("curthread not pinned"));
	PMAP_LOCK_ASSERT(pmap, MA_OWNED);
	if ((pte = pmap_pte_quick(pmap, va)) == NULL || *pte == 0)
		return;
	pmap_remove_pte(pmap, pte, va, free);
	pmap_invalidate_page(pmap, va);
}
static void pmap_remove_page ( pmap_t pmap , vm_offset_t va , struct spglist * free ) { pt_entry_t * pte ; rw_assert ( & pvh_global_lock , RA_WLOCKED ) ; KASSERT ( curthread -> td_pinned > 0 , ( " " ) ) ; PMAP_LOCK_ASSERT ( pmap , MA_OWNED ) ; if ( ( pte = pmap_pte_quick ( pmap , va ) ) == NULL || * pte == 0 ) return ; pmap_remove_pte ( pmap , pte , va , free ) ; pmap_invalidate_page ( pmap , va ) ; }
Remove a single page from a process address space
Remove a single page from a process address space