vm_map_lock(9)

vm_map_lock9

Vm_map locking macros

Usage

#include <sys/param.h>

#include <vm/vm.h>

#include <vm/vm_map.h>

void

vm_map_lock(vm_map_t map);

void

vm_map_unlock(vm_map_t map);

void

vm_map_lock_read(vm_map_t map);

void

vm_map_unlock_read(vm_map_t map);

int

vm_map_trylock(vm_map_t map);

int

vm_map_trylock_read(vm_map_t map);

int

vm_map_lock_upgrade(vm_map_t map);

int

vm_map_lock_downgrade(vm_map_t map);

Overview

The vm_map_lock() macro obtains an exclusive lock on map.

The vm_map_unlock() macro releases an exclusive lock on map.

The vm_map_lock_read() macro obtains a read-lock on map.

The vm_map_unlock_read() macro releases a read-lock on map.

The vm_map_trylock() macro attempts to obtain an exclusive lock on map. It returns FALSE if the lock cannot be immediately acquired; otherwise return TRUE with the lock acquired.

The vm_map_trylock_read() macro attempts to obtain a read-lock on map. It returns FALSE if the lock cannot be immediately acquired; otherwise return TRUE with the lock acquired.

The vm_map_lock_upgrade() macro attempts to atomically upgrade a read-lock on map to an exclusive lock.

The vm_map_lock_downgrade() macro attempts to downgrade an exclusive lock on map to a read-lock.

Implementation notes

Currently, all of the locking macros implement their locks as sleep locks.

Releases

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

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

Authors

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.