vm_map_submap(9)

vm_map_submap9

Create a subordinate map

Usage

#include <sys/param.h>

#include <vm/vm.h>

#include <vm/vm_map.h>

int

vm_map_submap(vm_map_t map, vm_offset_t start, vm_offset_t end, vm_map_t submap);

Overview

The vm_map_submap() function marks the range bounded by start and end within the map map as being handled by a subordinate map sub_map.

It is generally called by the kernel memory allocator.

Implementation notes

This function is for internal use only.

Both maps must exist. The range must have been created with vm_map_find(9) previously.

No other operations may have been performed on this range before calling this function. Only the vm_fault() operation may be performed within this range after calling this function.

To remove a submapping, one must first remove the range from the parent map, and then destroy the sub_map. This procedure is not recommended.

Return values

The vm_map_submap() function returns KERN_SUCCESS if successful.

Otherwise, it returns KERN_INVALID_ARGUMENT if the caller requested copy-on-write flags, or if the range specified for the sub-map was out of range for the parent map, or if a NULL backing object was specified.

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.