]>
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> | |
316670eb A |
116 | |
117 | ||
118 | # | |
119 | # CONFIG_TASK_ZONE_INFO allows per-task zone information to be extracted | |
120 | # Primarily useful for xnu debug and development. | |
121 | # | |
122 | options CONFIG_TASK_ZONE_INFO # <task_zone_info> | |
123 | # | |
124 | # CONFIG_DEBUGGER_FOR_ZONE_INFO restricts zone info so that it is only | |
125 | # available when the kernel is being debugged. | |
126 | # | |
127 | options CONFIG_DEBUGGER_FOR_ZONE_INFO # <debugger_for_zone_info> | |
1c79356b A |
128 | # |
129 | # XPR_DEBUG enables the gathering of data through the XPR macros inserted | |
130 | # into various subsystems. This option is normally only enabled for | |
131 | # specific performance or behavior studies, as the overhead in both | |
132 | # code and data space is large. The data is normally retrieved through | |
133 | # the kernel debugger (kdb) or by reading /dev/kmem. | |
134 | # | |
135 | options XPR_DEBUG # # <debug> | |
136 | # | |
137 | # MACH_LDEBUG controls the internal consistency checks and | |
138 | # data gathering in the locking package. This also enables a debug-only | |
139 | # version of simple-locks on uniprocessor machines. The code size and | |
140 | # performance impact of this option is significant. | |
141 | # | |
142 | options MACH_LDEBUG # # <debug> | |
143 | ||
144 | # | |
316670eb | 145 | # configuration option for full, partial, or no kernel debug event tracing |
1c79356b | 146 | # |
316670eb A |
147 | options KDEBUG # kernel tracing # <kdebug> |
148 | options IST_KDEBUG # limited tracing # <ist_kdebug> | |
149 | options NO_KDEBUG # no kernel tracing # <no_kdebug> | |
1c79356b | 150 | |
2d21ac55 A |
151 | # |
152 | # CONFIG_DTRACE enables code needed to support DTrace. Currently this is | |
153 | # only used for delivery of traps/interrupts to DTrace. | |
154 | # | |
155 | options CONFIG_DTRACE # # <config_dtrace> | |
156 | ||
1c79356b A |
157 | # MACH_COUNTERS enables code that handles various counters in the system. |
158 | # | |
159 | options MACH_COUNTERS # # <debug> | |
91447636 | 160 | |
39236c6e A |
161 | # DEVELOPMENT define for development builds |
162 | options DEVELOPMENT # dev kernel # <development> | |
163 | ||
1c79356b A |
164 | ########################################################## |
165 | # | |
166 | # This defines configuration options that are normally used only during | |
167 | # kernel code development and performance characterization. They add run-time | |
168 | # statistics gathering, which will slow down the system, | |
169 | # | |
170 | ########################################################## | |
171 | # | |
1c79356b A |
172 | # MACH_IPC_STATS controls the collection of statistics in the MACH IPC |
173 | # subsystem. | |
174 | # | |
175 | #options MACH_IPC_STATS | |
176 | # | |
177 | # MACH_CO_INFO controls the collection of callout statistics. This | |
178 | # information is retrieved via a mach_debug message, or though | |
179 | # /dev/kmem. The runtime impact of the option is minimal. | |
180 | # | |
181 | #options MACH_CO_INFO | |
182 | # | |
183 | # MACH_CLUSTER_STATS controls the collection of various statistics concerning | |
184 | # the effectiveness and behavior of the clustered pageout and pagein | |
185 | # code. | |
186 | # | |
187 | #options MACH_CLUSTER_STATS | |
188 | # | |
189 | # MACH_SCTIMES enables optional code that can be used to measure the | |
190 | # execution overhead of performing Mach traps with 1 through 6 | |
191 | # arguments. | |
192 | # | |
193 | #options MACH_SCTIMES | |
194 | # | |
195 | # MACH_COUNTERS enables various code-path statistics. Most of these | |
196 | # are accessed through the debugger. | |
197 | # | |
198 | options MACH_COUNTERS # # <stats> | |
199 | ||
2d21ac55 A |
200 | # |
201 | # configuration option for including cypto code | |
202 | # | |
203 | options CRYPTO # <crypto> | |
204 | ||
205 | # HIBERNATION - include hibernation code | |
206 | # | |
207 | options HIBERNATION # # <hibernation> | |
208 | ||
b0d623f7 A |
209 | # CONFIG_SLEEP - include sleep power state code |
210 | # | |
211 | options CONFIG_SLEEP # # <config_sleep> | |
212 | ||
316670eb A |
213 | # CONFIG_KEXT_BASEMENT - alloc post boot loaded kexts after prelinked kexts |
214 | # | |
215 | options CONFIG_KEXT_BASEMENT # # <config_kext_basement> | |
216 | ||
217 | ||
2d21ac55 A |
218 | # |
219 | # configurable kernel related resources (CONFIG_THREAD_MAX needs to stay in | |
220 | # sync with bsd/conf/MASTER until we fix the config system... todo XXX | |
221 | # | |
222 | options CONFIG_THREAD_MAX=2560 # <medium,large,xlarge> | |
223 | options CONFIG_THREAD_MAX=1536 # <small,xsmall> | |
224 | options CONFIG_THREAD_MAX=1024 # <bsmall> | |
225 | ||
226 | options CONFIG_TASK_MAX=1024 # <medium,large,xlarge> | |
227 | options CONFIG_TASK_MAX=768 # <small,xsmall> | |
228 | options CONFIG_TASK_MAX=512 # <bsmall> | |
229 | ||
230 | options CONFIG_ZONE_MAP_MIN=12582912 # <medium,large,xlarge> | |
231 | options CONFIG_ZONE_MAP_MIN=6291456 # <small,xsmall> | |
232 | options CONFIG_ZONE_MAP_MIN=1048576 # <bsmall> | |
233 | ||
316670eb A |
234 | # Sizes must be a power of two for the zhash to |
235 | # be able to just mask off bits instead of mod | |
236 | options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=16384 #<medium,large,xlarge> | |
237 | options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=8192 #<small,xsmall,bsmall> | |
238 | options CONFIG_ZLEAK_TRACE_MAP_NUM=8192 #<medium,large,xlarge> | |
239 | options CONFIG_ZLEAK_TRACE_MAP_NUM=4096 #<small,xsmall,bsmall> | |
240 | ||
2d21ac55 A |
241 | # |
242 | # configurable kernel - use these options to strip strings from panic | |
243 | # and printf calls. | |
244 | # no_panic_str - saves around 50K of kernel footprint. | |
245 | # no_printf_str - saves around 45K of kernel footprint. | |
246 | # | |
247 | options CONFIG_NO_PANIC_STRINGS # <no_panic_str> | |
248 | options CONFIG_NO_PRINTF_STRINGS # <no_printf_str> | |
249 | options CONFIG_NO_KPRINTF_STRINGS # <no_kprintf_str> | |
250 | ||
b7266188 A |
251 | # support dynamic signing of code |
252 | # | |
253 | options CONFIG_DYNAMIC_CODE_SIGNING # <dynamic_codesigning> | |
254 | ||
2d21ac55 A |
255 | # vc_progress_white - make the progress gear white instead of black |
256 | options CONFIG_VC_PROGRESS_WHITE # <vc_progress_white> | |
257 | ||
258 | # secure_kernel - secure kernel from user programs | |
259 | options SECURE_KERNEL # <secure_kernel> | |
593a1d5f | 260 | |
b0d623f7 A |
261 | # |
262 | # Context switched counters | |
263 | # | |
264 | options CONFIG_COUNTERS # <config_counters> | |
6d2010ae A |
265 | |
266 | # | |
267 | # Timeshare scheduler implementations | |
268 | # | |
269 | options CONFIG_SCHED_TRADITIONAL # <config_sched_traditional> | |
270 | options CONFIG_SCHED_PROTO # <config_sched_proto> | |
271 | options CONFIG_SCHED_GRRR # <config_sched_grrr> | |
272 | options CONFIG_SCHED_FIXEDPRIORITY # <config_sched_fixedpriority> | |
273 | options CONFIG_SCHED_GRRR_CORE # <config_sched_grrr,config_sched_fixedpriority> | |
274 | ||
275 | options CONFIG_SCHED_IDLE_IN_PLACE # <config_sched_idle_in_place> | |
316670eb A |
276 | options CONFIG_GZALLOC # <config_gzalloc> |
277 | # | |
278 | # enable per-process memory priority tracking | |
279 | # | |
280 | options CONFIG_MEMORYSTATUS # <memorystatus> | |
6d2010ae A |
281 | |
282 | # | |
316670eb | 283 | # enable jetsam - used on embedded |
6d2010ae | 284 | # |
316670eb | 285 | options CONFIG_JETSAM # <jetsam> |
6d2010ae | 286 | |
316670eb A |
287 | # |
288 | # enable freezing of suspended processes - used on embedded | |
289 | # | |
290 | options CONFIG_FREEZE # <freeze> | |
6d2010ae A |
291 | |
292 | options CHECK_CS_VALIDATION_BITMAP # <config_cs_validation_bitmap> | |
293 | ||
316670eb A |
294 | # |
295 | # Enable dispatch of memory pressure events from the vm_pageout_garbage_collect thread | |
296 | # | |
297 | options VM_PRESSURE_EVENTS # <vm_pressure_events> | |
298 | ||
39236c6e A |
299 | # |
300 | # Enable inheritance of importance through specially marked mach ports and for file locks | |
301 | # For now debug is enabled wherever inheritance is | |
302 | # | |
303 | options IMPORTANCE_INHERITANCE # <importance_inheritance> | |
304 | options IMPORTANCE_DEBUG # <importance_inheritance> | |
305 | ||
316670eb A |
306 | # Enable allocation of contiguous physical memory through vm_map_enter_cpm() |
307 | options VM_CPM # <vm_cpm> | |
308 | ||
309 | options CONFIG_SKIP_PRECISE_USER_KERNEL_TIME # <config_skip_precise_user_kernel_time> | |
39236c6e A |
310 | |
311 | options CONFIG_TELEMETRY # <config_telemetry> | |
312 | ||
313 | # | |
314 | # Switch to disable cpu, wakeup and high memory watermark monitors | |
315 | # | |
316 | options CONFIG_NOMONITORS # <config_nomonitors> | |
317 | ||
318 | # | |
319 | # In-kernel tests | |
320 | # | |
321 | options CONFIG_IN_KERNEL_TESTS # <in_kernel_tests> | |
322 |