1 .\"
2 .\" Mach Operating System
3 .\" Copyright (c) 1991,1990 Carnegie Mellon University
4 .\" All Rights Reserved.
5 .\"
6 .\" Permission to use, copy, modify and distribute this software and its
7 .\" documentation is hereby granted, provided that both the copyright
8 .\" notice and this permission notice appear in all copies of the
9 .\" software, derivative works or modified versions, and any portions
10 .\" thereof, and that both notices appear in supporting documentation.
11 .\"
12 .\" CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13 .\" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14 .\" ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15 .\"
16 .\" Carnegie Mellon requests users of this software to return to
17 .\"
18 .\" Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
19 .\" School of Computer Science
20 .\" Carnegie Mellon University
21 .\" Pittsburgh PA 15213-3890
22 .\"
23 .\" any improvements or extensions that they make and grant Carnegie Mellon
24 .\" the rights to redistribute these changes.
25 .\"
26 .\"
27 .\" HISTORY
28 .\" $Log: vm_machine_attribute.man,v $
29 .\" Revision 2.5 93/03/18 15:16:47 mrt
30 .\" corrected types
31 .\" [93/03/12 16:55:24 lli]
32 .\"
33 .\" Revision 2.4 91/05/14 17:15:44 mrt
34 .\" Correcting copyright
35 .\"
36 .\" Revision 2.3 91/02/14 14:16:18 mrt
37 .\" Changed to new Mach copyright
38 .\" [91/02/12 18:17:15 mrt]
39 .\"
40 .\" Revision 2.2 90/08/07 18:47:37 rpd
41 .\" Created.
42 .\"
43 .TH vm_machine_attribute 2 3/15/90
44 .CM 4
45 .SH NAME
46 .nf
47 vm_machine_attribute \- handle machine-specific VM attributes
48 .SH SYNOPSIS
49 .nf
50 .ft B
51 #include <mach.h>
52
53 .nf
54 .ft B
55 kern_return_t vm_machine_attribute (task, address, size, attribute, value)
56 mach_port_t task;
57 vm_address_t address;
58 vm_size_t size;
59 vm_machine_attribute_t attribute;
60 vm_machine_attribute_val_t *value;
61
62
63 .fi
64 .ft P
65 .SH ARGUMENTS
66 .TP 15
67 .B
68 task
69 The task whose memory is to be affected
70 .TP 15
71 .B
72 address
73 Starting address of the memory segment.
74 .TP 15
75 .B
76 size
77 Size of the memory segment
78 .TP 15
79 .B
80 attribute
81 Attribute type
82 .TP 15
83 .B
84 value
85 Pointer to the attribute's value
86
87 .SH DESCRIPTION
88
89 .B vm_machine_attribute
90 specifies machine-specific attributes for a VM mapping, such as cachability,
91 migrability, replicability. This is used on machines that allow the user
92 control over the cache (this is the case for MIPS architectures)
93 or placement of memory pages as in NUMA architectures (Non-Uniform Memory
94 Access time) such as the IBM ACE multiprocessor.
95
96 Machine-specific attributes can be consider additions to the
97 machine-independent ones such as protection and inheritance,
98 but they are not guaranteed to be supported by any given machine.
99 Moreover, implementations of Mach on new architectures might find the need
100 for new attribute types and or values besides the ones defined in the
101 initial implementation.
102
103 The types currently defined are
104
105 .B MATTR_CACHE
106 Controls caching of memory pages
107
108 .B MATTR_MIGRATE
109 Controls migrability of memory pages
110
111 .B MATTR_REPLICATE
112 Controls replication of memory pages
113
114 Corresponding values, and meaning of a specific call to
115 .B vm_machine_attribute
116
117 .B MATTR_VAL_ON
118 Enables the attribute. Being enabled is the default
119 value for any applicable attribute.
120
121 .B MATTR_VAL_OFF
122 Disables the attribute, making memory non-cached,
123 or non-migratable, or non-replicatable.
124
125 .B MATTR_VAL_GET
126 Returns the current value of the attribute for the
127 memory segment. If the attribute does not apply
128 uniformly to the given range the value returned
129 applies to the initial portion of the segment only.
130
131 .B MATTR_VAL_CACHE_FLUSH
132 Flush the memory pages from the Cache.
133 The
134 .B size
135 value in this case might be meaningful
136 even if not a multiple of the page size, depending
137 on the implementation.
138
139 .B MATTR_VAL_ICACHE_FLUSH
140 Same as above, applied to the Instruction Cache alone.
141
142 .B MATTR_VAL_DCACHE_FLUSH
143 Same as above, applied to the Data Cache alone.
144
145
146
147 .SH DIAGNOSTICS
148 .TP 25
149 KERN_SUCCESS
150 The call succeeded.
151 .TP 25
152 KERN_INVALID_ARGUMENT
153 .B task
154 is not a task, or
155 .B address
156 and
157 .B size
158 do
159 not define a valid address range in
160 .B task
161 , or
162 .B attribute
163 is not a valid
164 attribute type, or it is not implemented, or
165 .B value
166 is not a permissible
167 value for
168 .B attribute
169 .
170
171 .SH BUGS
172
173 The initial implementation (for MIPS) does not provide for inheritance of
174 machine attributes. This might change if/when the IBM ACE code will be
175 merged in the mainline.
176
177
Cache object: 01c9985db132f51ab143f97819be64e8
|