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.
7 #######################################################################
9 # Master machine independent configuration file.
11 # Specific configuration files are created based on this and
12 # the machine specific master file using the doconf script.
14 # Any changes to the master configuration files will affect all
15 # other configuration files based upon it.
17 #######################################################################
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:
23 # <configuration> = [ <attribute0> <attribute1> ... <attributeN> ]
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
33 # <foo,bar> selects a line if "foo" or "bar" are specified.
34 # <!foo,bar> selects a line if neither "foo" nor "bar" is
37 # Lines with no attributes specified are selected for all
40 #######################################################################
41 # SYSTEM SIZE CONFIGURATION (select exactly one)
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
50 #######################################################################
52 # Basic compilation options.
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
59 ##############################################################################
61 # MACH configuration options.
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.
71 options TASK_SWAPPER # <task_swapper_disabled>
72 pseudo-device test_device 1
73 options ADVISORY_PAGEOUT
74 ##########################################################
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
82 ##########################################################
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.
88 options MACH_ASSERT # # <mach_assert>
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
96 options MACH_DEBUG # #
97 options MACH_IPC_DEBUG # #
99 options MACH_VM_DEBUG # # <debug>
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.
105 options MACH_MP_DEBUG # # <debug>
107 # ZONE_DEBUG keeps track of all zalloc()ed elements to perform further
108 # operations on each element.
110 options ZONE_DEBUG # # <debug>
112 options ZONE_ALIAS_ADDR # # <zone_alias_addr>
114 # XPR_DEBUG enables the gathering of data through the XPR macros inserted
115 # into various subsystems. This option is normally only enabled for
116 # specific performance or behavior studies, as the overhead in both
117 # code and data space is large. The data is normally retrieved through
118 # the kernel debugger (kdb) or by reading /dev/kmem.
120 options XPR_DEBUG # # <debug>
122 # MACH_LDEBUG controls the internal consistency checks and
123 # data gathering in the locking package. This also enables a debug-only
124 # version of simple-locks on uniprocessor machines. The code size and
125 # performance impact of this option is significant.
127 options MACH_LDEBUG # # <debug>
132 options KDEBUG # kernel tracing # <kdebug>
135 # CONFIG_DTRACE enables code needed to support DTrace. Currently this is
136 # only used for delivery of traps/interrupts to DTrace.
138 options CONFIG_DTRACE # # <config_dtrace>
140 # MACH_COUNTERS enables code that handles various counters in the system.
142 options MACH_COUNTERS # # <debug>
145 ##########################################################
147 # This defines configuration options that are normally used only during
148 # kernel code development and performance characterization. They add run-time
149 # statistics gathering, which will slow down the system,
151 ##########################################################
153 # MACH_IPC_STATS controls the collection of statistics in the MACH IPC
156 #options MACH_IPC_STATS
158 # MACH_CO_INFO controls the collection of callout statistics. This
159 # information is retrieved via a mach_debug message, or though
160 # /dev/kmem. The runtime impact of the option is minimal.
162 #options MACH_CO_INFO
164 # MACH_CLUSTER_STATS controls the collection of various statistics concerning
165 # the effectiveness and behavior of the clustered pageout and pagein
168 #options MACH_CLUSTER_STATS
170 # MACH_SCTIMES enables optional code that can be used to measure the
171 # execution overhead of performing Mach traps with 1 through 6
174 #options MACH_SCTIMES
176 # MACH_COUNTERS enables various code-path statistics. Most of these
177 # are accessed through the debugger.
179 options MACH_COUNTERS # # <stats>
182 # configuration option for including cypto code
184 options CRYPTO # <crypto>
186 # HIBERNATION - include hibernation code
188 options HIBERNATION # # <hibernation>
190 # CONFIG_SLEEP - include sleep power state code
192 options CONFIG_SLEEP # # <config_sleep>
195 # configurable kernel related resources (CONFIG_THREAD_MAX needs to stay in
196 # sync with bsd/conf/MASTER until we fix the config system... todo XXX
198 options CONFIG_THREAD_MAX=2560 # <medium,large,xlarge>
199 options CONFIG_THREAD_MAX=1536 # <small,xsmall>
200 options CONFIG_THREAD_MAX=1024 # <bsmall>
202 options CONFIG_TASK_MAX=1024 # <medium,large,xlarge>
203 options CONFIG_TASK_MAX=768 # <small,xsmall>
204 options CONFIG_TASK_MAX=512 # <bsmall>
206 options CONFIG_ZONE_MAP_MIN=12582912 # <medium,large,xlarge>
207 options CONFIG_ZONE_MAP_MIN=6291456 # <small,xsmall>
208 options CONFIG_ZONE_MAP_MIN=1048576 # <bsmall>
210 options CONFIG_TOKEN_QUEUE_SMALL=1 # <bsmall>
211 options CONFIG_TOKEN_QUEUE_SMALL=0 # <xsmall,small,medium,large,xlarge>
214 # configurable kernel - use these options to strip strings from panic
216 # no_panic_str - saves around 50K of kernel footprint.
217 # no_printf_str - saves around 45K of kernel footprint.
219 options CONFIG_NO_PANIC_STRINGS # <no_panic_str>
220 options CONFIG_NO_PRINTF_STRINGS # <no_printf_str>
221 options CONFIG_NO_KPRINTF_STRINGS # <no_kprintf_str>
223 # configurable kernel - general switch to say we are building for an
226 options CONFIG_EMBEDDED # <config_embedded>
228 # only execute signed code. Hang this off config_embedded since there's
229 # nothing more appropriate right now
231 options CONFIG_ENFORCE_SIGNED_CODE # <config_embedded>
233 # vc_progress_white - make the progress gear white instead of black
234 options CONFIG_VC_PROGRESS_WHITE # <vc_progress_white>
236 # secure_kernel - secure kernel from user programs
237 options SECURE_KERNEL # <secure_kernel>
240 # code decryption... used on embedded for app protection
241 # must be set in all the bsd/conf and osfmk/conf MASTER files
243 options CONFIG_CODE_DECRYPTION # <config_embedded>
246 # Context switched counters
248 options CONFIG_COUNTERS # <config_counters>