.\" .\" $OpenBSD: vm_map_protect.9,v 1.3 2001/11/06 21:54:41 miod Exp $ .\" .\" Mach Operating System .\" Copyright (c) 1991,1990 Carnegie Mellon University .\" All Rights Reserved. .\" .\" Permission to use, copy, modify and distribute this software and its .\" documentation is hereby granted, provided that both the copyright .\" notice and this permission notice appear in all copies of the .\" software, derivative works or modified versions, and any portions .\" thereof, and that both notices appear in supporting documentation. .\" .\" CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" .\" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR .\" ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. .\" .\" Carnegie Mellon requests users of this software to return to .\" .\" Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU .\" School of Computer Science .\" Carnegie Mellon University .\" Pittsburgh PA 15213-3890 .\" .\" any improvements or extensions that they make and grant Carnegie Mellon .\" the rights to redistribute these changes. .\" .TH vm_map_protect 9 9/19/93 .CM 4 .SH NAME .nf vm_map_protect \- change protection of memory .SH SYNOPSIS .nf .ft B #include .nf .ft B int vm_map_protect(map, start, end, new_prot, set_max) vm_map_t map; vm_offset_t start, end; vm_prot_t new_protection; boolean_t set_maximum; .fi .ft P .SH ARGUMENTS .TP 15 .B map Virtual memory map to be affected. .TP 15 .B start Starting address (will be rounded down to a page boundary). .TP 15 .B end Ending address (will be rounded down to a page boundary). .TP 15 .B new_prot A new protection value for this region; a set of: \fBVM_PROT_READ\fR, \fBVM_PROT_WRITE\fR, \fBVM_PROT_EXECUTE\fR. .TP 15 .B set_max If set, make the protection change apply to the maximum protection associated with this address range; otherwise, the current protection on this range is changed. If the maximum protection is reduced below the current protection, both will be changed to reflect the new maximum. .SH DESCRIPTION .B vm_map_protect sets the virtual memory access privileges for a range of allocated addresses in a task's virtual address space. The protection argument describes a combination of read, write, and execute accesses that should be \fBpermitted\fR. The enforcement of virtual memory protection is machine-dependent. Nominally read access requires VM_PROT_READ permission, write access requires VM_PROT_WRITE permission, and execute access requires VM_PROT_EXECUTE permission. However, some combinations of access rights may not be supported. In particular, the kernel interface allows write access to require VM_PROT_READ and VM_PROT_WRITE permission and execute access to require VM_PROT_READ permission. .SH DIAGNOSTICS .TP 25 KERN_SUCCESS Memory protected. .TP 25 KERN_PROTECTION_FAILURE An attempt was made to increase the current or maximum protection beyond the existing maximum protection value. .TP 25 KERN_INVALID_ADDRESS Illegal or non-allocated address specified.