summaryrefslogtreecommitdiff
path: root/share/man/man9/vm_map_protect.9
blob: 1dedcfc1ee981378422aa1d930742953085b6c85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
.\" 
.\"	$OpenBSD: vm_map_protect.9,v 1.1 1996/03/11 13:04:53 mickey 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 <vm/vm_map.h>

.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.