]>
Commit | Line | Data |
---|---|---|
1c79356b A |
1 | # |
2 | # Mach Operating System | |
3 | # Copyright (c) 1986 Carnegie-Mellon University | |
4 | # All rights reserved. The CMU software License Agreement | |
5 | # specifies the terms and conditions for use and redistribution. | |
6 | # | |
7 | ####################################################################### | |
8 | # | |
9 | # Master machine independent configuration file. | |
10 | # | |
11 | # Specific configuration files are created based on this and | |
12 | # the machine specific master file using the doconf script. | |
13 | # | |
14 | # Any changes to the master configuration files will affect all | |
15 | # other configuration files based upon it. | |
16 | # | |
17 | ####################################################################### | |
18 | # | |
19 | # To build a configuration, execute "doconf <configuration>." | |
20 | # Configurations are specified in the "Configurations:" section | |
21 | # of the MASTER and MASTER.* files as follows: | |
22 | # | |
23 | # <configuration> = [ <attribute0> <attribute1> ... <attributeN> ] | |
24 | # | |
25 | # Lines in the MASTER and MASTER.* files are selected based on | |
26 | # the attribute selector list, found in a comment at the end of | |
27 | # the line. This is a list of attributes separated by commas. | |
28 | # The "!" operator selects the line if none of the attributes are | |
29 | # specified. | |
30 | # | |
31 | # For example: | |
32 | # | |
33 | # <foo,bar> selects a line if "foo" or "bar" are specified. | |
34 | # <!foo,bar> selects a line if neither "foo" nor "bar" is | |
35 | # specified. | |
36 | # | |
37 | # Lines with no attributes specified are selected for all | |
38 | # configurations. | |
39 | # | |
40 | ####################################################################### | |
2d21ac55 A |
41 | # SYSTEM SIZE CONFIGURATION (select exactly one) |
42 | # | |
43 | # xlarge = extra large scale system configuration | |
44 | # large = large scale system configuration | |
45 | # medium = medium scale system configuration | |
46 | # small = small scale system configuration | |
47 | # xsmall = extra small scale system configuration | |
48 | # bsmall = special extra small scale system configuration | |
49 | # | |
50 | ####################################################################### | |
1c79356b A |
51 | # |
52 | # Basic compilation options. | |
53 | # | |
54 | # The MACH ident is passed to every kernel file compilation as -DMACH. | |
55 | # This is useful in order to #ifdef code that is intended to be used in | |
56 | # a MACH kernel. | |
57 | # | |
58 | ident MACH | |
59 | ############################################################################## | |
60 | # | |
61 | # MACH configuration options. | |
62 | # | |
63 | # TASK_SWAPPER enables code that manages demand for physical memory by | |
64 | # forcibly suspending tasks when the demand exceeds supply. This | |
65 | # option should be on. | |
66 | # | |
67 | options MACH_KERNEL | |
6d2010ae | 68 | options MACH_PAGEMAP # <mach_pagemap> |
1c79356b A |
69 | options MACH_LOAD |
70 | options MACH_RT | |
1c79356b A |
71 | options TASK_SWAPPER # <task_swapper_disabled> |
72 | pseudo-device test_device 1 | |
73 | options ADVISORY_PAGEOUT | |
74 | ########################################################## | |
75 | # | |
76 | # conf/config.debug | |
77 | # | |
78 | # This defines configuration options that are normally used only during | |
79 | # kernel code development and debugging. They add run-time error checks or | |
80 | # statistics gathering, which will slow down the system | |
81 | # | |
82 | ########################################################## | |
83 | # | |
84 | # MACH_ASSERT controls the assert() and ASSERT() macros, used to verify the | |
85 | # consistency of various algorithms in the kernel. The performance impact | |
86 | # of this option is significant. | |
87 | # | |
2d21ac55 | 88 | options MACH_ASSERT # # <mach_assert> |
1c79356b A |
89 | # |
90 | # MACH_DEBUG enables the mach_debug_server, a message interface used to | |
91 | # retrieve or control various statistics. This interface may expose data | |
92 | # structures that would not normally be allowed outside the kernel, and | |
93 | # MUST NOT be enabled on a released configuration. | |
94 | # Other options here enable information retrieval for specific subsystems | |
95 | # | |
96 | options MACH_DEBUG # # | |
2d21ac55 | 97 | options MACH_IPC_DEBUG # # |
1c79356b | 98 | # |
1c79356b A |
99 | options MACH_VM_DEBUG # # <debug> |
100 | # | |
101 | # MACH_MP_DEBUG control the possible dead locks that may occur by controlling | |
102 | # that IPL level has been raised down to SPL0 after some calls to | |
103 | # hardclock device driver. | |
104 | # | |
105 | options MACH_MP_DEBUG # # <debug> | |
106 | # | |
107 | # ZONE_DEBUG keeps track of all zalloc()ed elements to perform further | |
108 | # operations on each element. | |
109 | # | |
110 | options ZONE_DEBUG # # <debug> | |
6d2010ae A |
111 | |
112 | options CONFIG_ZLEAKS # Live zone leak debugging # <zleaks> | |
113 | ||
2d21ac55 A |
114 | # |
115 | options ZONE_ALIAS_ADDR # # <zone_alias_addr> | |
1c79356b A |
116 | # |
117 | # XPR_DEBUG enables the gathering of data through the XPR macros inserted | |
118 | # into various subsystems. This option is normally only enabled for | |
119 | # specific performance or behavior studies, as the overhead in both | |
120 | # code and data space is large. The data is normally retrieved through | |
121 | # the kernel debugger (kdb) or by reading /dev/kmem. | |
122 | # | |
123 | options XPR_DEBUG # # <debug> | |
124 | # | |
125 | # MACH_LDEBUG controls the internal consistency checks and | |
126 | # data gathering in the locking package. This also enables a debug-only | |
127 | # version of simple-locks on uniprocessor machines. The code size and | |
128 | # performance impact of this option is significant. | |
129 | # | |
130 | options MACH_LDEBUG # # <debug> | |
131 | ||
132 | # | |
133 | # | |
134 | # | |
135 | options KDEBUG # kernel tracing # <kdebug> | |
136 | ||
2d21ac55 A |
137 | # |
138 | # CONFIG_DTRACE enables code needed to support DTrace. Currently this is | |
139 | # only used for delivery of traps/interrupts to DTrace. | |
140 | # | |
141 | options CONFIG_DTRACE # # <config_dtrace> | |
142 | ||
1c79356b A |
143 | # MACH_COUNTERS enables code that handles various counters in the system. |
144 | # | |
145 | options MACH_COUNTERS # # <debug> | |
91447636 | 146 | |
1c79356b A |
147 | ########################################################## |
148 | # | |
149 | # This defines configuration options that are normally used only during | |
150 | # kernel code development and performance characterization. They add run-time | |
151 | # statistics gathering, which will slow down the system, | |
152 | # | |
153 | ########################################################## | |
154 | # | |
1c79356b A |
155 | # MACH_IPC_STATS controls the collection of statistics in the MACH IPC |
156 | # subsystem. | |
157 | # | |
158 | #options MACH_IPC_STATS | |
159 | # | |
160 | # MACH_CO_INFO controls the collection of callout statistics. This | |
161 | # information is retrieved via a mach_debug message, or though | |
162 | # /dev/kmem. The runtime impact of the option is minimal. | |
163 | # | |
164 | #options MACH_CO_INFO | |
165 | # | |
166 | # MACH_CLUSTER_STATS controls the collection of various statistics concerning | |
167 | # the effectiveness and behavior of the clustered pageout and pagein | |
168 | # code. | |
169 | # | |
170 | #options MACH_CLUSTER_STATS | |
171 | # | |
172 | # MACH_SCTIMES enables optional code that can be used to measure the | |
173 | # execution overhead of performing Mach traps with 1 through 6 | |
174 | # arguments. | |
175 | # | |
176 | #options MACH_SCTIMES | |
177 | # | |
178 | # MACH_COUNTERS enables various code-path statistics. Most of these | |
179 | # are accessed through the debugger. | |
180 | # | |
181 | options MACH_COUNTERS # # <stats> | |
182 | ||
2d21ac55 A |
183 | # |
184 | # configuration option for including cypto code | |
185 | # | |
186 | options CRYPTO # <crypto> | |
187 | ||
188 | # HIBERNATION - include hibernation code | |
189 | # | |
190 | options HIBERNATION # # <hibernation> | |
191 | ||
b0d623f7 A |
192 | # CONFIG_SLEEP - include sleep power state code |
193 | # | |
194 | options CONFIG_SLEEP # # <config_sleep> | |
195 | ||
2d21ac55 A |
196 | # |
197 | # configurable kernel related resources (CONFIG_THREAD_MAX needs to stay in | |
198 | # sync with bsd/conf/MASTER until we fix the config system... todo XXX | |
199 | # | |
200 | options CONFIG_THREAD_MAX=2560 # <medium,large,xlarge> | |
201 | options CONFIG_THREAD_MAX=1536 # <small,xsmall> | |
202 | options CONFIG_THREAD_MAX=1024 # <bsmall> | |
203 | ||
204 | options CONFIG_TASK_MAX=1024 # <medium,large,xlarge> | |
205 | options CONFIG_TASK_MAX=768 # <small,xsmall> | |
206 | options CONFIG_TASK_MAX=512 # <bsmall> | |
207 | ||
208 | options CONFIG_ZONE_MAP_MIN=12582912 # <medium,large,xlarge> | |
209 | options CONFIG_ZONE_MAP_MIN=6291456 # <small,xsmall> | |
210 | options CONFIG_ZONE_MAP_MIN=1048576 # <bsmall> | |
211 | ||
2d21ac55 A |
212 | # |
213 | # configurable kernel - use these options to strip strings from panic | |
214 | # and printf calls. | |
215 | # no_panic_str - saves around 50K of kernel footprint. | |
216 | # no_printf_str - saves around 45K of kernel footprint. | |
217 | # | |
218 | options CONFIG_NO_PANIC_STRINGS # <no_panic_str> | |
219 | options CONFIG_NO_PRINTF_STRINGS # <no_printf_str> | |
220 | options CONFIG_NO_KPRINTF_STRINGS # <no_kprintf_str> | |
221 | ||
222 | # configurable kernel - general switch to say we are building for an | |
223 | # embedded device | |
224 | # | |
225 | options CONFIG_EMBEDDED # <config_embedded> | |
226 | ||
593a1d5f A |
227 | # only execute signed code. Hang this off config_embedded since there's |
228 | # nothing more appropriate right now | |
229 | # | |
230 | options CONFIG_ENFORCE_SIGNED_CODE # <config_embedded> | |
231 | ||
b7266188 A |
232 | # support dynamic signing of code |
233 | # | |
234 | options CONFIG_DYNAMIC_CODE_SIGNING # <dynamic_codesigning> | |
235 | ||
2d21ac55 A |
236 | # vc_progress_white - make the progress gear white instead of black |
237 | options CONFIG_VC_PROGRESS_WHITE # <vc_progress_white> | |
238 | ||
239 | # secure_kernel - secure kernel from user programs | |
240 | options SECURE_KERNEL # <secure_kernel> | |
593a1d5f A |
241 | |
242 | # | |
243 | # code decryption... used on embedded for app protection | |
244 | # must be set in all the bsd/conf and osfmk/conf MASTER files | |
245 | # | |
246 | options CONFIG_CODE_DECRYPTION # <config_embedded> | |
b0d623f7 A |
247 | |
248 | # | |
249 | # Context switched counters | |
250 | # | |
251 | options CONFIG_COUNTERS # <config_counters> | |
6d2010ae A |
252 | |
253 | # | |
254 | # Timeshare scheduler implementations | |
255 | # | |
256 | options CONFIG_SCHED_TRADITIONAL # <config_sched_traditional> | |
257 | options CONFIG_SCHED_PROTO # <config_sched_proto> | |
258 | options CONFIG_SCHED_GRRR # <config_sched_grrr> | |
259 | options CONFIG_SCHED_FIXEDPRIORITY # <config_sched_fixedpriority> | |
260 | options CONFIG_SCHED_GRRR_CORE # <config_sched_grrr,config_sched_fixedpriority> | |
261 | ||
262 | options CONFIG_SCHED_IDLE_IN_PLACE # <config_sched_idle_in_place> | |
263 | ||
264 | # | |
265 | # freeze - support app hibernation, used on embedded | |
266 | # | |
267 | options CONFIG_FREEZE # <freeze> | |
268 | ||
269 | ||
270 | options CHECK_CS_VALIDATION_BITMAP # <config_cs_validation_bitmap> | |
271 |