pmap_extract(9)

pmap_extract9

Map a virtual address to a physical page

Usage

#include <sys/param.h>

#include <vm/vm.h>

#include <vm/pmap.h>

vm_paddr_t

pmap_extract(pmap_t pmap, vm_offset_t va);

vm_page_t

pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot);

Overview

The pmap_extract() function maps a virtual address to a physical page. In certain situations, callers may use pmap_extract_and_hold() instead, to ensure that the returned page is held.

The pmap_extract_and_hold() function maps a virtual address to a physical page, and atomically holds the returned page for use by the caller, only if the mapping permits the given page protection.

Implementation notes

Currently, the page protection requested by the caller is not verified.

Return values

The pmap_extract() function will return the physical page address associated with the virtual address va inside the physical map pmap. If the mapping does not exist, or if the pmap parameter is NULL, then NULL will be returned.

The pmap_extract_and_hold() function will return the vm_page_t associated with the virtual address va inside the physical map pmap. If the mapping does not exist, the result is a no-op, and NULL will be returned.

Releases

54 releases since FreeBSD 5.2-RELEASE; the text changed 34 times.

  1. 5.2–5.2.1
  2. 5.3–6.3
  3. 6.4
  4. 7.0
  5. 7.1
  6. 7.2
  7. 7.3
  8. 7.4
  9. 8.0
  10. 8.1
  11. 8.2
  12. 8.3
  13. 8.4
  14. 9.0
  15. 9.1
  16. 9.2
  17. 9.3
  18. 10.0
  19. 10.1
  20. 10.2
  21. 10.3
  22. 10.4
  23. 11.0
  24. 11.1
  25. 11.2
  26. 11.3
  27. 11.4
  28. 12.0
  29. 12.1
  30. 12.2
  31. 12.3
  32. 12.4
  33. 13.0
  34. 13.1–13.2
  35. 13.3–16.0

Authors

The pmap_extract_and_hold() function was implemented by Alan L. Cox ⟨[email protected]⟩. This manual page was written by Bruce M Simpson ⟨[email protected]⟩.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.