]> git.saurik.com Git - apple/xnu.git/blame - osfmk/conf/MASTER
xnu-1699.32.7.tar.gz
[apple/xnu.git] / osfmk / conf / MASTER
CommitLineData
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#
58ident 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#
67options MACH_KERNEL
6d2010ae 68options MACH_PAGEMAP # <mach_pagemap>
1c79356b
A
69options MACH_LOAD
70options MACH_RT
1c79356b
A
71options TASK_SWAPPER # <task_swapper_disabled>
72pseudo-device test_device 1
73options 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 88options 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#
96options MACH_DEBUG # #
2d21ac55 97options MACH_IPC_DEBUG # #
1c79356b 98#
1c79356b
A
99options 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#
105options MACH_MP_DEBUG # # <debug>
106#
107# ZONE_DEBUG keeps track of all zalloc()ed elements to perform further
108# operations on each element.
109#
110options ZONE_DEBUG # # <debug>
6d2010ae
A
111
112options CONFIG_ZLEAKS # Live zone leak debugging # <zleaks>
113
2d21ac55
A
114#
115options 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#
123options 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#
130options MACH_LDEBUG # # <debug>
131
132#
133#
134#
135options 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#
141options CONFIG_DTRACE # # <config_dtrace>
142
1c79356b
A
143# MACH_COUNTERS enables code that handles various counters in the system.
144#
145options 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#
181options MACH_COUNTERS # # <stats>
182
2d21ac55
A
183#
184# configuration option for including cypto code
185#
186options CRYPTO # <crypto>
187
188# HIBERNATION - include hibernation code
189#
190options HIBERNATION # # <hibernation>
191
b0d623f7
A
192# CONFIG_SLEEP - include sleep power state code
193#
194options 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#
200options CONFIG_THREAD_MAX=2560 # <medium,large,xlarge>
201options CONFIG_THREAD_MAX=1536 # <small,xsmall>
202options CONFIG_THREAD_MAX=1024 # <bsmall>
203
204options CONFIG_TASK_MAX=1024 # <medium,large,xlarge>
205options CONFIG_TASK_MAX=768 # <small,xsmall>
206options CONFIG_TASK_MAX=512 # <bsmall>
207
208options CONFIG_ZONE_MAP_MIN=12582912 # <medium,large,xlarge>
209options CONFIG_ZONE_MAP_MIN=6291456 # <small,xsmall>
210options 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#
218options CONFIG_NO_PANIC_STRINGS # <no_panic_str>
219options CONFIG_NO_PRINTF_STRINGS # <no_printf_str>
220options CONFIG_NO_KPRINTF_STRINGS # <no_kprintf_str>
221
222# configurable kernel - general switch to say we are building for an
223# embedded device
224#
225options 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#
230options CONFIG_ENFORCE_SIGNED_CODE # <config_embedded>
231
b7266188
A
232# support dynamic signing of code
233#
234options CONFIG_DYNAMIC_CODE_SIGNING # <dynamic_codesigning>
235
2d21ac55
A
236# vc_progress_white - make the progress gear white instead of black
237options CONFIG_VC_PROGRESS_WHITE # <vc_progress_white>
238
239# secure_kernel - secure kernel from user programs
240options 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#
246options CONFIG_CODE_DECRYPTION # <config_embedded>
b0d623f7
A
247
248#
249# Context switched counters
250#
251options CONFIG_COUNTERS # <config_counters>
6d2010ae
A
252
253#
254# Timeshare scheduler implementations
255#
256options CONFIG_SCHED_TRADITIONAL # <config_sched_traditional>
257options CONFIG_SCHED_PROTO # <config_sched_proto>
258options CONFIG_SCHED_GRRR # <config_sched_grrr>
259options CONFIG_SCHED_FIXEDPRIORITY # <config_sched_fixedpriority>
260options CONFIG_SCHED_GRRR_CORE # <config_sched_grrr,config_sched_fixedpriority>
261
262options CONFIG_SCHED_IDLE_IN_PLACE # <config_sched_idle_in_place>
263
264#
265# freeze - support app hibernation, used on embedded
266#
267options CONFIG_FREEZE # <freeze>
268
269
270options CHECK_CS_VALIDATION_BITMAP # <config_cs_validation_bitmap>
271