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.
If set_max is TRUE, new_prot is treated as the new max_protection setting for each underlying entry. Otherwise, only the protection field is affected.
The range MUST be contiguous, and MUST NOT contain sub-maps.
The function acquires a lock on the map for the duration, by calling vm_map_lock(9).
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.