Reference

pmap_kextract(9)

extract a physical address from the kernel page table

NAME

pmap_kextract, vtophys – extract a physical address from the kernel page table

SYNOPSIS

#include <sys/param.h>

#include <vm/vm.h>

#include <vm/pmap.h>

vm_paddr_t

pmap_kextract(vm_offset_t va);

vm_paddr_t

vtophys(vm_offset_t va);

DESCRIPTION

The pmap_kextract() function retrieves the underlying physical memory address corresponding to the given kernel virtual address va. The caller is responsible for ensuring that va belongs to a valid mapping in the kernel address space. The returned physical address is only meaningful as long as the mapping remains stable, so the caller must also have some knowledge or guarantee of the mapping's lifetime. For example, it is invalid to call pmap_kextract() with the address of a malloc'd object while there is a possibility for that object to be freed concurrently.

Unlike pmap_extract(9), pmap_kextract() is safe to be called from any context; it has no internal locking or sleep.

vtophys() is an alias for pmap_kextract() and behaves identically.

RETURN VALUES

The pmap_kextract() function returns the physical address of memory mapped at the kernel virtual address va.

pmap_kextract() generally does not fail. However, if supplied with an illegitimate value for va, the function may return zero, an invalid non-zero value, or call panic(9).

SEE ALSO

pmap(9), pmap_extract(9)

AUTHORS

This manual page was written by Mina Galić ⟨[email protected]⟩, based on the pmap_extract(9) page written by Bruce M Simpson ⟨[email protected]⟩.