MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pmap_remove_page

Function pmap_remove_page

freebsd/amd64/amd64/pmap.c:5947–5966  ·  view source on GitHub ↗

* Remove a single page from a process address space */

Source from the content-addressed store, hash-verified

5945 * Remove a single page from a process address space
5946 */
5947static void
5948pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde,
5949 struct spglist *free)
5950{
5951 struct rwlock *lock;
5952 pt_entry_t *pte, PG_V;
5953
5954 PG_V = pmap_valid_bit(pmap);
5955 PMAP_LOCK_ASSERT(pmap, MA_OWNED);
5956 if ((*pde & PG_V) == 0)
5957 return;
5958 pte = pmap_pde_to_pte(pde, va);
5959 if ((*pte & PG_V) == 0)
5960 return;
5961 lock = NULL;
5962 pmap_remove_pte(pmap, pte, va, *pde, free, &lock);
5963 if (lock != NULL)
5964 rw_wunlock(lock);
5965 pmap_invalidate_page(pmap, va);
5966}
5967
5968/*
5969 * Removes the specified range of addresses from the page table page.

Callers 1

pmap_removeFunction · 0.70

Calls 4

pmap_valid_bitFunction · 0.85
pmap_pde_to_pteFunction · 0.70
pmap_remove_pteFunction · 0.70
pmap_invalidate_pageFunction · 0.70

Tested by

no test coverage detected