#include <sys/param.h>
void
pmap_init(void);
void
pmap_virtual_space(vaddr_t *vstartp, vaddr_t *vendp);
vaddr_t
pmap_steal_memory(vsize_t size, vaddr_t *vstartp, vaddr_t *vendp);
pmap_t
pmap_kernel(void);
pmap_t
pmap_create(void);
void
pmap_destroy(pmap_t pmap);
void
pmap_reference(pmap_t pmap);
void
pmap_fork(pmap_t src_map, pmap_t dst_map);
long
pmap_resident_count(pmap_t pmap);
long
pmap_wired_count(pmap_t pmap);
vaddr_t
pmap_growkernel(vaddr_t maxkvaddr);
int
pmap_enter(pmap_t pmap, vaddr_t va, paddr_t pa, vm_prot_t prot, u_int flags);
void
pmap_remove(pmap_t pmap, vaddr_t sva, vaddr_t eva);
void
pmap_remove_all(pmap_t pmap);
void
pmap_protect(pmap_t pmap, vaddr_t sva, vaddr_t eva, vm_prot_t prot);
void
pmap_unwire(pmap_t pmap, vaddr_t va);
bool
pmap_extract(pmap_t pmap, vaddr_t va, paddr_t *pap);
void
pmap_kenter_pa(vaddr_t va, paddr_t pa, vm_prot_t prot, u_int flags);
void
pmap_kremove(vaddr_t va, vsize_t size);
void
pmap_copy(pmap_t dst_map, pmap_t src_map, vaddr_t dst_addr, vsize_t len, vaddr_t src_addr);
void
pmap_update(pmap_t pmap);
void
pmap_activate(struct lwp *l);
void
pmap_deactivate(struct lwp *l);
void
pmap_zero_page(paddr_t pa);
void
pmap_copy_page(paddr_t src, paddr_t dst);
void
pmap_page_protect(struct vm_page *pg, vm_prot_t prot);
bool
pmap_clear_modify(struct vm_page *pg);
bool
pmap_clear_reference(struct vm_page *pg);
bool
pmap_is_modified(struct vm_page *pg);
bool
pmap_is_referenced(struct vm_page *pg);
paddr_t
pmap_phys_address(paddr_t cookie);
vaddr_t
PMAP_MAP_POOLPAGE(paddr_t pa);
paddr_t
PMAP_UNMAP_POOLPAGE(vaddr_t va);
void
PMAP_PREFER(vaddr_t hint, vaddr_t *vap, vsize_t sz, int td);