]> git.saurik.com Git - apple/xnu.git/blob - osfmk/conf/MASTER
xnu-344.23.tar.gz
[apple/xnu.git] / osfmk / conf / MASTER
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 #######################################################################
41 #
42 # Basic compilation options.
43 #
44 # The MACH ident is passed to every kernel file compilation as -DMACH.
45 # This is useful in order to #ifdef code that is intended to be used in
46 # a MACH kernel.
47 #
48 ident MACH
49 ##############################################################################
50 #
51 # MACH configuration options.
52 #
53 # TASK_SWAPPER enables code that manages demand for physical memory by
54 # forcibly suspending tasks when the demand exceeds supply. This
55 # option should be on.
56 #
57 options MACH_KERNEL
58 options MACH_PAGEMAP
59 options MACH_LOAD
60 options MACH_RT
61 options THREAD_SWAPPER # <thread_swapper_disabled>
62 options TASK_SWAPPER # <task_swapper_disabled>
63 pseudo-device test_device 1
64 options ADVISORY_PAGEOUT
65 ##########################################################
66 #
67 # conf/config.debug
68 #
69 # This defines configuration options that are normally used only during
70 # kernel code development and debugging. They add run-time error checks or
71 # statistics gathering, which will slow down the system
72 #
73 ##########################################################
74 #
75 # MACH_ASSERT controls the assert() and ASSERT() macros, used to verify the
76 # consistency of various algorithms in the kernel. The performance impact
77 # of this option is significant.
78 #
79 options MACH_ASSERT # # <debug>
80 #
81 # MACH_DEBUG enables the mach_debug_server, a message interface used to
82 # retrieve or control various statistics. This interface may expose data
83 # structures that would not normally be allowed outside the kernel, and
84 # MUST NOT be enabled on a released configuration.
85 # Other options here enable information retrieval for specific subsystems
86 #
87 options MACH_DEBUG # #
88 #
89 options MACH_IPC_DEBUG # # <debug>
90 options MACH_VM_DEBUG # # <debug>
91 #
92 # MACH_MP_DEBUG control the possible dead locks that may occur by controlling
93 # that IPL level has been raised down to SPL0 after some calls to
94 # hardclock device driver.
95 #
96 options MACH_MP_DEBUG # # <debug>
97 #
98 # ZONE_DEBUG keeps track of all zalloc()ed elements to perform further
99 # operations on each element.
100 #
101 options ZONE_DEBUG # # <debug>
102 #
103 # XPR_DEBUG enables the gathering of data through the XPR macros inserted
104 # into various subsystems. This option is normally only enabled for
105 # specific performance or behavior studies, as the overhead in both
106 # code and data space is large. The data is normally retrieved through
107 # the kernel debugger (kdb) or by reading /dev/kmem.
108 #
109 options XPR_DEBUG # # <debug>
110 #
111 # MACH_LDEBUG controls the internal consistency checks and
112 # data gathering in the locking package. This also enables a debug-only
113 # version of simple-locks on uniprocessor machines. The code size and
114 # performance impact of this option is significant.
115 #
116 options MACH_LDEBUG # # <debug>
117
118 #
119 #
120 #
121 options KDEBUG # kernel tracing # <kdebug>
122
123 #
124 # MACH_COUNTERS enables code that handles various counters in the system.
125 #
126 options MACH_COUNTERS # # <debug>
127 #
128 # ETAP The Event Trace Analysis Package enables user-level tasks to monitor
129 # and analyze kernel events. ETAP supports three modes of tracing:
130 #
131 # 1. General event tracing: ETAP_EVENT_MONITOR
132 # 2. Monitored lock tracing: ETAP_LOCK_MONITOR
133 # 3. Cumulative lock tracing: ETAP_LOCK_ACCUMULATE
134 #
135 # Each of these trace modes are mutually exclusive.
136 #
137 # CONFIGURING ETAP: To enable the trace package, the ETAP switch
138 # along with *ONE* ETAP trace mode is selected. The selected ETAP
139 # mode determines the level of instrumentation built into the kernel.
140 # Mode 1 configures event probes through-out the system. Modes 2 & 3
141 # add instumentation to the kernel lock mechanisms.
142 #
143 # ETAP (and all its trace modes) is mutually exclusive with the
144 # MACH_LDEBUG option. It is assumed that general lock debugging is
145 # completed before gathering event information.
146 #
147 # ETAP functionality is normally only enabled for event profiling and
148 # performance studies. Event tracing should not be enabled for release
149 # configurations, as the code size and performance impact of these
150 # options are significant.
151 #
152 #
153 #options ETAP # ETAP enable
154 #options ETAP_EVENT_MONITOR # Monitor events
155 #options ETAP_LOCK_MONITOR # Monitor lock behavior
156 #options ETAP_LOCK_ACCUMULATE # Collect cumulative lock data
157
158 ##########################################################
159 #
160 # This defines configuration options that are normally used only during
161 # kernel code development and performance characterization. They add run-time
162 # statistics gathering, which will slow down the system,
163 #
164 ##########################################################
165 #
166 # MACH_PROF enables the profiling server, a message interface used to
167 # retrieve profiling statistics.
168 #
169 #options MACH_PROF # # <mach_prof>
170 #
171 # MACH_IPC_STATS controls the collection of statistics in the MACH IPC
172 # subsystem.
173 #
174 #options MACH_IPC_STATS
175 #
176 # MACH_CO_INFO controls the collection of callout statistics. This
177 # information is retrieved via a mach_debug message, or though
178 # /dev/kmem. The runtime impact of the option is minimal.
179 #
180 #options MACH_CO_INFO
181 #
182 # MACH_CLUSTER_STATS controls the collection of various statistics concerning
183 # the effectiveness and behavior of the clustered pageout and pagein
184 # code.
185 #
186 #options MACH_CLUSTER_STATS
187 #
188 # MACH_SCTIMES enables optional code that can be used to measure the
189 # execution overhead of performing Mach traps with 1 through 6
190 # arguments.
191 #
192 #options MACH_SCTIMES
193 #
194 # MACH_COUNTERS enables various code-path statistics. Most of these
195 # are accessed through the debugger.
196 #
197 options MACH_COUNTERS # # <stats>
198