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 #######################################################################
42 # Basic compilation options.
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
49 ##############################################################################
51 # MACH configuration options.
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.
61 options TASK_SWAPPER # <task_swapper_disabled>
62 pseudo-device test_device 1
63 options ADVISORY_PAGEOUT
64 ##########################################################
68 # This defines configuration options that are normally used only during
69 # kernel code development and debugging. They add run-time error checks or
70 # statistics gathering, which will slow down the system
72 ##########################################################
74 # MACH_ASSERT controls the assert() and ASSERT() macros, used to verify the
75 # consistency of various algorithms in the kernel. The performance impact
76 # of this option is significant.
78 options MACH_ASSERT # # <debug>
80 # MACH_DEBUG enables the mach_debug_server, a message interface used to
81 # retrieve or control various statistics. This interface may expose data
82 # structures that would not normally be allowed outside the kernel, and
83 # MUST NOT be enabled on a released configuration.
84 # Other options here enable information retrieval for specific subsystems
86 options MACH_DEBUG # #
88 options MACH_IPC_DEBUG # # <debug>
89 options MACH_VM_DEBUG # # <debug>
91 # MACH_MP_DEBUG control the possible dead locks that may occur by controlling
92 # that IPL level has been raised down to SPL0 after some calls to
93 # hardclock device driver.
95 options MACH_MP_DEBUG # # <debug>
97 # ZONE_DEBUG keeps track of all zalloc()ed elements to perform further
98 # operations on each element.
100 options ZONE_DEBUG # # <debug>
102 # XPR_DEBUG enables the gathering of data through the XPR macros inserted
103 # into various subsystems. This option is normally only enabled for
104 # specific performance or behavior studies, as the overhead in both
105 # code and data space is large. The data is normally retrieved through
106 # the kernel debugger (kdb) or by reading /dev/kmem.
108 options XPR_DEBUG # # <debug>
110 # MACH_LDEBUG controls the internal consistency checks and
111 # data gathering in the locking package. This also enables a debug-only
112 # version of simple-locks on uniprocessor machines. The code size and
113 # performance impact of this option is significant.
115 options MACH_LDEBUG # # <debug>
120 options KDEBUG # kernel tracing # <kdebug>
123 # MACH_COUNTERS enables code that handles various counters in the system.
125 options MACH_COUNTERS # # <debug>
127 options UPL_DEBUG # # <debug>
129 ##########################################################
131 # This defines configuration options that are normally used only during
132 # kernel code development and performance characterization. They add run-time
133 # statistics gathering, which will slow down the system,
135 ##########################################################
137 # MACH_PROF enables the profiling server, a message interface used to
138 # retrieve profiling statistics.
140 #options MACH_PROF # # <mach_prof>
142 # MACH_IPC_STATS controls the collection of statistics in the MACH IPC
145 #options MACH_IPC_STATS
147 # MACH_CO_INFO controls the collection of callout statistics. This
148 # information is retrieved via a mach_debug message, or though
149 # /dev/kmem. The runtime impact of the option is minimal.
151 #options MACH_CO_INFO
153 # MACH_CLUSTER_STATS controls the collection of various statistics concerning
154 # the effectiveness and behavior of the clustered pageout and pagein
157 #options MACH_CLUSTER_STATS
159 # MACH_SCTIMES enables optional code that can be used to measure the
160 # execution overhead of performing Mach traps with 1 through 6
163 #options MACH_SCTIMES
165 # MACH_COUNTERS enables various code-path statistics. Most of these
166 # are accessed through the debugger.
168 options MACH_COUNTERS # # <stats>