]> git.saurik.com Git - apple/xnu.git/blob - osfmk/mach/vm_attributes.h
xnu-201.tar.gz
[apple/xnu.git] / osfmk / mach / vm_attributes.h
1 /*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22 /*
23 * @OSF_COPYRIGHT@
24 */
25 /*
26 * HISTORY
27 *
28 * Revision 1.1.1.1 1998/09/22 21:05:31 wsanchez
29 * Import of Mac OS X kernel (~semeria)
30 *
31 * Revision 1.1.1.1 1998/03/07 02:25:46 wsanchez
32 * Import of OSF Mach kernel (~mburg)
33 *
34 * Revision 1.2.9.2 1998/02/02 09:22:22 gdt
35 * Add new function "MATTR_VAL_GET_INFO" to get shared/resident information
36 * about a page. This lets Linux display better statistics (e.g. 'top').
37 * [1998/02/02 09:21:30 gdt]
38 *
39 * Revision 1.2.9.1 1997/09/12 17:16:06 stephen
40 * Add new MATTR_VAL_CACHE_SYNC which
41 * syncs I+D caches without necessarily
42 * flushing them.
43 * [1997/09/12 16:32:45 stephen]
44 *
45 * Revision 1.2.6.1 1994/09/23 02:43:58 ezf
46 * change marker to not FREE
47 * [1994/09/22 21:43:31 ezf]
48 *
49 * Revision 1.2.2.2 1993/06/09 02:44:08 gm
50 * Added to OSF/1 R1.3 from NMK15.0.
51 * [1993/06/02 21:18:41 jeffc]
52 *
53 * Revision 1.2 1993/04/19 16:40:21 devrcs
54 * ansi C conformance changes
55 * [1993/02/02 18:55:22 david]
56 *
57 * Revision 1.1 1992/09/30 02:32:22 robert
58 * Initial revision
59 *
60 * $EndLog$
61 */
62 /* CMU_HIST */
63 /*
64 * Revision 2.4 91/05/14 17:02:37 mrt
65 * Correcting copyright
66 *
67 * Revision 2.3 91/02/05 17:37:24 mrt
68 * Changed to new Mach copyright
69 * [91/02/01 17:22:17 mrt]
70 *
71 * Revision 2.2 90/01/22 23:05:53 af
72 * Created.
73 * [89/12/08 af]
74 *
75 *
76 */
77 /* CMU_ENDHIST */
78 /*
79 * Mach Operating System
80 * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
81 * All Rights Reserved.
82 *
83 * Permission to use, copy, modify and distribute this software and its
84 * documentation is hereby granted, provided that both the copyright
85 * notice and this permission notice appear in all copies of the
86 * software, derivative works or modified versions, and any portions
87 * thereof, and that both notices appear in supporting documentation.
88 *
89 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
90 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
91 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
92 *
93 * Carnegie Mellon requests users of this software to return to
94 *
95 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
96 * School of Computer Science
97 * Carnegie Mellon University
98 * Pittsburgh PA 15213-3890
99 *
100 * any improvements or extensions that they make and grant Carnegie Mellon
101 * the rights to redistribute these changes.
102 */
103 /*
104 */
105 /*
106 * File: mach/vm_attributes.h
107 * Author: Alessandro Forin
108 *
109 * Virtual memory attributes definitions.
110 *
111 * These definitions are in addition to the machine-independent
112 * ones (e.g. protection), and are only selectively supported
113 * on specific machine architectures.
114 *
115 */
116
117 #ifndef VM_ATTRIBUTES_H_
118 #define VM_ATTRIBUTES_H_
119
120 /*
121 * Types of machine-dependent attributes
122 */
123 typedef unsigned int vm_machine_attribute_t;
124
125 #define MATTR_CACHE 1 /* cachability */
126 #define MATTR_MIGRATE 2 /* migrability */
127 #define MATTR_REPLICATE 4 /* replicability */
128
129 /*
130 * Values for the above, e.g. operations on attribute
131 */
132 typedef int vm_machine_attribute_val_t;
133
134 #define MATTR_VAL_OFF 0 /* (generic) turn attribute off */
135 #define MATTR_VAL_ON 1 /* (generic) turn attribute on */
136 #define MATTR_VAL_GET 2 /* (generic) return current value */
137
138 #define MATTR_VAL_CACHE_FLUSH 6 /* flush from all caches */
139 #define MATTR_VAL_DCACHE_FLUSH 7 /* flush from data caches */
140 #define MATTR_VAL_ICACHE_FLUSH 8 /* flush from instruction caches */
141 #define MATTR_VAL_CACHE_SYNC 9 /* sync I+D caches */
142 #define MATTR_VAL_CACHE_SYNC 9 /* sync I+D caches */
143
144 #define MATTR_VAL_GET_INFO 10 /* get page info (stats) */
145
146 #endif /* VM_ATTRIBUTES_H_ */