vm_map_protect — apply protection bits to a virtual memory region
Contents
Description
The vm_map_protect() function sets the protection bits of the address region bounded by start and end
within the map map to new_prot. The value specified by new_prot may not include any protection bits that
are not set in max_protection on every entry within the range.
If set_max is TRUE, new_prot is treated as the new max_protection setting for each underlying entry.
Protection bits not included new_prot will be cleared from existing entries. If set_max is FALSE only
the protection field is affected.
The range MUST be contiguous, and MUST NOT contain sub-maps.
Implementation Notes
The function acquires a lock on the map for the duration, by calling vm_map_lock(9).
Name
vm_map_protect — apply protection bits to a virtual memory region
Return Values
The vm_map_protect() function returns KERN_SUCCESS if the protection bits could be set successfully.
If a sub-map entry was encountered in the range, KERN_INVALID_ARGUMENT is returned. If the value of
new_prot would exceed max_protection for an entry within the range, KERN_PROTECTION_FAILURE is returned.
See Also
vm_map(9)
Synopsis
#include<sys/param.h>#include<vm/vm.h>#include<vm/vm_map.h>intvm_map_protect(vm_map_tmap, vm_offset_tstart, vm_offset_tend, vm_prot_tnew_prot, boolean_tset_max);
