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
104
105
106
107
108
109
110
111
112
|
.\"
.\" $OpenBSD: vm_map_inherit.9,v 1.1 1996/03/11 13:04:52 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_inherit 9 9/19/93
.CM 4
.SH NAME
.nf
vm_map_inherit \- specifies inheritence of address space
.SH SYNOPSIS
.nf
.ft B
#include <vm/vm_map.h>
.nf
.ft B
int vm_inherit(map, start, end, new_inheritance)
vm_map_t map;
vm_offset_t start, end;
vm_inherit_t new_inheritance;
.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_inheritance
How this memory is to be inherited in child maps.
Inheritance is specified by using one of these following three values:
.TP 15
.B
VM_INHERIT_SHARE
Child maps will share this memory with this map.
.TP 15
.B
VM_INHERIT_COPY
Child maps will receive a copy of this region.
.TP 15
.B
VM_INHERIT_NONE
This region will be absent from child maps.
.SH DESCRIPTION
.B vm_map_inherit
specifies how a region of a virtual address space
is to be passed to child maps at the time of map creation.
Inheritance is an attribute of virtual pages, thus the addresses
and size of memory to be set will be rounded out to refer to
whole pages.
Setting
.B vm_map_inherit
to
.B VM_INHERIT_SHARE
and forking a child
map is the only way two
.B tasks
can share physical memory.
Remember that all the
.B theads
of a given task share all the same
memory.
.SH DIAGNOSTICS
.TP 25
KERN_SUCCESS
Memory protected.
.TP 25
KERN_INVALID_ADDRESS
Illegal address specified.
.SH SEE ALSO
.B vm_map_fork
|