]>
Commit | Line | Data |
---|---|---|
1c79356b A |
1 | # |
2 | # Mach Operating System | |
3 | # Copyright (c) 1986 Carnegie-Mellon University | |
fe8ab488 A |
4 | # Copyright 2001-2014 Apple Inc. |
5 | # | |
1c79356b A |
6 | # All rights reserved. The CMU software License Agreement |
7 | # specifies the terms and conditions for use and redistribution. | |
8 | # | |
9 | ####################################################################### | |
10 | # | |
11 | # Master machine independent configuration file. | |
12 | # | |
13 | # Specific configuration files are created based on this and | |
14 | # the machine specific master file using the doconf script. | |
15 | # | |
16 | # Any changes to the master configuration files will affect all | |
17 | # other configuration files based upon it. | |
18 | # | |
19 | ####################################################################### | |
20 | # | |
21 | # To build a configuration, execute "doconf <configuration>." | |
22 | # Configurations are specified in the "Configurations:" section | |
23 | # of the MASTER and MASTER.* files as follows: | |
24 | # | |
25 | # <configuration> = [ <attribute0> <attribute1> ... <attributeN> ] | |
26 | # | |
27 | # Lines in the MASTER and MASTER.* files are selected based on | |
28 | # the attribute selector list, found in a comment at the end of | |
29 | # the line. This is a list of attributes separated by commas. | |
30 | # The "!" operator selects the line if none of the attributes are | |
31 | # specified. | |
32 | # | |
33 | # For example: | |
34 | # | |
35 | # <foo,bar> selects a line if "foo" or "bar" are specified. | |
36 | # <!foo,bar> selects a line if neither "foo" nor "bar" is | |
37 | # specified. | |
38 | # | |
39 | # Lines with no attributes specified are selected for all | |
40 | # configurations. | |
41 | # | |
42 | ####################################################################### | |
43 | # | |
1c79356b A |
44 | # SYSTEM SIZE CONFIGURATION (select exactly one) |
45 | # | |
46 | # xlarge = extra large scale system configuration | |
47 | # large = large scale system configuration | |
48 | # medium = medium scale system configuration | |
49 | # small = small scale system configuration | |
50 | # xsmall = extra small scale system configuration | |
2d21ac55 | 51 | # bsmall = special extra small scale system configuration |
1c79356b A |
52 | # |
53 | ####################################################################### | |
1c79356b | 54 | # |
1c79356b | 55 | |
2d21ac55 | 56 | options INET # # <inet> |
1c79356b A |
57 | options HW_AST # Hardware ast support # <hw_ast> |
58 | options HW_FOOTPRINT # Cache footprint support # <hw_foot> | |
2d21ac55 | 59 | |
1c79356b | 60 | options MACH # Standard Mach features # <mach> |
1c79356b | 61 | options MACH_COMPAT # Vendor syscall compatibility # <mach> |
1c79356b | 62 | options MACH_FASTLINK # Fast symbolic links |
1c79356b A |
63 | options MACH_HOST # Mach host (resource alloc.) # <host> |
64 | options MACH_IPC_COMPAT # Enable old IPC interface # <ipc_compat> | |
1c79356b | 65 | options MACH_IPC_TEST # Testing code/printfs # <ipc_test> |
1c79356b A |
66 | options MACH_NP # Mach IPC support # <np> |
67 | options MACH_NBC # No buffer cache # <nbc> | |
1c79356b A |
68 | options MACH_NET # Fast network access # <mach_net> |
69 | options MACH_XP # external pager support # <xp> | |
1c79356b | 70 | options NO_DIRECT_RPC # for untyped mig servers # |
1c79356b | 71 | options LOOP # loopback support # <loop> |
1c79356b | 72 | options VLAN # # <vlan> |
91447636 | 73 | options BOND # # <bond> |
fe8ab488 A |
74 | options AH_ALL_CRYPTO # AH all crypto algs # <ah_all_crypto> |
75 | options IPCOMP_ZLIB # IP compression using zlib # <ipcomp_zlib> | |
b0d623f7 | 76 | options PF # Packet Filter # <pf> |
316670eb | 77 | options PF_ALTQ # PF ALTQ (Alternate Queueing) # <pf_altq> |
fe8ab488 | 78 | options PF_ECN # PF use ECN marking # <pf_ecn> |
b0d623f7 | 79 | options PFLOG # PF log interface # <pflog> |
316670eb A |
80 | options PKTSCHED_CBQ # CBQ packet scheduler # <pktsched_cbq> |
81 | options PKTSCHED_HFSC # H-FSC packet scheduler # <pktsched_hfsc> | |
82 | options PKTSCHED_PRIQ # PRIQ packet scheduler # <pktsched_priq> | |
83 | options PKTSCHED_FAIRQ # FAIRQ packet scheduler # <pktsched_fairq> | |
39236c6e | 84 | options MEASURE_BW # interface bandwidth measurement # <measure_bw> |
316670eb A |
85 | options CLASSQ_BLUE # BLUE queueing algorithm # <classq_blue> |
86 | options CLASSQ_RED # RED queueing algorithm # <classq_red> | |
87 | options CLASSQ_RIO # RIO queueing algorithm # <classq_rio> | |
2d21ac55 A |
88 | options IPDIVERT # Divert sockets (for NAT) # <ipdivert> |
89 | options IPFIREWALL # IP Firewalling (used by NAT) # <ipfirewall> | |
90 | options IPFIREWALL_FORWARD #Transparent proxy # <ipfirewall> | |
91 | options IPFIREWALL_DEFAULT_TO_ACCEPT # allow everything by default # <ipfirewall> | |
91447636 | 92 | options DUMMYNET # dummynet support # <dummynet> |
2d21ac55 | 93 | options TRAFFIC_MGT # traffic management support # <traffic_mgt> |
91447636 | 94 | options IPFW2 # IP firewall (new version) # <ipfw2> |
1c79356b | 95 | options MULTICAST # Internet Protocol Class-D $ |
9bccf70c | 96 | options TCPDEBUG # TCP debug # <tcpdebug> |
9bccf70c A |
97 | options TCP_DROP_SYNFIN # Drop TCP packets with SYN+FIN set # <tcpdrop_synfin> |
98 | options ICMP_BANDLIM # ICMP bandwidth limiting sysctl | |
2d21ac55 | 99 | options IFNET_INPUT_SANITY_CHK # allow dlil/ifnet input sanity check # <ifnet_input_chk> |
39236c6e A |
100 | options MULTIPATH # Multipath domain # <multipath> |
101 | options MPTCP # Multipath TCP # <mptcp> | |
2d21ac55 A |
102 | options SYSV_SEM # SVID semaphores # <sysv_sem> |
103 | options SYSV_MSG # SVID messages # <sysv_msg> | |
104 | options SYSV_SHM # SVID shared mem # <sysv_shm> | |
b0d623f7 | 105 | options PSYNCH # pthread synch # <psynch> |
39236c6e | 106 | options FLOW_DIVERT # <flow_divert> |
fe8ab488 A |
107 | options NECP # <necp> |
108 | options CONTENT_FILTER # # <content_filter> | |
109 | options PACKET_MANGLER # # <packet_mangler> | |
2d21ac55 A |
110 | # secure_kernel - secure kernel from user programs |
111 | options SECURE_KERNEL # <secure_kernel> | |
1c79356b | 112 | |
b0d623f7 A |
113 | options OLD_SEMWAIT_SIGNAL # old semwait_signal handler |
114 | ||
1c79356b A |
115 | # |
116 | # 4.4 general kernel | |
117 | # | |
39236c6e | 118 | options SOCKETS # socket support # <inet, inet6> |
1c79356b | 119 | options DIAGNOSTIC # diagnostics # <diagnostic> |
55e303ae | 120 | options GPROF # build profiling # <profile> |
fe8ab488 | 121 | options PROFILE # kernel profiling # <profile> |
2d21ac55 | 122 | options SENDFILE # sendfile # <sendfile> |
39236c6e | 123 | options NETWORKING # networking layer # <inet, inet6> |
2d21ac55 A |
124 | options CONFIG_FSE # file system events # <config_fse> |
125 | options CONFIG_IMAGEBOOT # local image boot # <config_imageboot> | |
2d21ac55 | 126 | options CONFIG_MBUF_JUMBO # jumbo cluster pool # <config_mbuf_jumbo> |
b0d623f7 A |
127 | options CONFIG_FORCE_OUT_IFP # Enable IP_FORCE_OUT_IFP # <config_force_out_ifp> |
128 | options CONFIG_IFEF_NOWINDOWSCALE # Scale TCP window per driver # <config_ifef_nowindowscale> | |
593a1d5f A |
129 | |
130 | options CONFIG_WORKQUEUE # <config_workqueue> | |
1c79356b A |
131 | |
132 | # | |
133 | # 4.4 filesystems | |
134 | # | |
2d21ac55 | 135 | options HFS # HFS/HFS+ support # <hfs> |
39236c6e | 136 | options MOCKFS # Boot from an executable # <mockfs> |
1c79356b | 137 | options FIFO # fifo support # <fifo> |
1c79356b | 138 | options FDESC # fdesc_fs support # <fdesc> |
1c79356b | 139 | options DEVFS # devfs support # <devfs> |
2d21ac55 | 140 | options JOURNALING # journaling support # <journaling> |
b0d623f7 | 141 | options HFS_COMPRESSION # hfs compression # <hfs_compression> |
316670eb A |
142 | options CONFIG_HFS_STD # hfs standard support # <config_hfs_std> |
143 | options CONFIG_HFS_TRIM # hfs trims unused blocks # <config_hfs_trim> | |
144 | options CONFIG_HFS_MOUNT_UNMAP #hfs trims blocks at mount # <config_hfs_mount_unmap> | |
39236c6e | 145 | options CONFIG_HFS_DIRLINK #allow directory hardlink creation # <config_hfs_dirlink> |
fe8ab488 | 146 | options CONFIG_DEV_KMEM # /dev/kmem device for reading KVA # <config_dev_kmem> |
2d21ac55 A |
147 | |
148 | # | |
149 | # file system features | |
150 | # | |
151 | options QUOTA # file system quotas # <quota> | |
2d21ac55 | 152 | options NAMEDSTREAMS # named stream vnop support # <namedstreams> |
39236c6e | 153 | options CONFIG_APPLEDOUBLE # apple double support # <config_appledouble> |
2d21ac55 | 154 | options CONFIG_VOLFS # volfs path support (legacy) # <config_volfs> |
b7266188 | 155 | options CONFIG_IMGSRC_ACCESS # source of imageboot dmg # <config_imgsrc_access> |
6d2010ae | 156 | options CONFIG_TRIGGERS # trigger vnodes # <config_triggers> |
316670eb A |
157 | options CONFIG_EXT_RESOLVER # e.g. memberd # <config_ext_resolver> |
158 | options CONFIG_SEARCHFS # searchfs syscall support # <config_searchfs> | |
fe8ab488 | 159 | options CONFIG_SECLUDED_RENAME # secluded rename syscall # <config_secluded_rename> |
1c79356b A |
160 | |
161 | # | |
162 | # NFS support | |
163 | # | |
2d21ac55 A |
164 | options NFSCLIENT # Be an NFS client # <nfsclient> |
165 | options NFSSERVER # Be an NFS server # <nfsserver> | |
1c79356b | 166 | |
1c79356b A |
167 | # |
168 | # Machine Independent Apple Features | |
169 | # | |
2d21ac55 | 170 | profile # build a profiling kernel # <profile> |
1c79356b A |
171 | |
172 | # | |
9bccf70c | 173 | # IPv6 Support |
1c79356b A |
174 | # |
175 | options "INET6" # kernel IPv6 Support # <inet6> | |
39236c6e | 176 | options IPV6SEND # Secure Neighbor Discovery # <ipv6send> |
1c79356b A |
177 | options IPSEC # IP security # <ipsec> |
178 | options IPSEC_ESP # IP security # <ipsec> | |
179 | options "IPV6FIREWALL" # IPv6 Firewall Feature # <ipv6firewall> | |
91447636 A |
180 | options "IPV6FIREWALL_DEFAULT_TO_ACCEPT" #IPv6 Firewall Feature # <ipv6firewall> |
181 | #options "IPV6FIREWALL_VERBOSE" #IPv6 Firewall Feature # <ipv6firewall> | |
9bccf70c A |
182 | |
183 | pseudo-device gif 1 # <gif> | |
1c79356b | 184 | pseudo-device dummy 2 # <dummy> |
9bccf70c A |
185 | pseudo-device stf 1 # <stf> |
186 | ||
fe8ab488 A |
187 | options CRYPTO # <ipsec,crypto> |
188 | options CRYPTO_SHA2 # <crypto_sha2> | |
189 | options ENCRYPTED_SWAP # <encrypted_swap> | |
2d21ac55 A |
190 | |
191 | options ZLIB # inflate/deflate support # <zlib> | |
1c79356b | 192 | |
6d2010ae | 193 | options IF_BRIDGE # <if_bridge> |
b7266188 | 194 | |
2d21ac55 A |
195 | # |
196 | # configurable kernel event related resources | |
197 | # | |
198 | options CONFIG_KN_HASHSIZE=64 # <medium,large,xlarge> | |
199 | options CONFIG_KN_HASHSIZE=48 # <small,xsmall> | |
200 | options CONFIG_KN_HASHSIZE=20 # <bsmall> | |
201 | ||
202 | # | |
203 | # configurable vfs related resources | |
204 | # CONFIG_VNODES - used to pre allocate vnode related resources | |
205 | # CONFIG_VNODE_FREE_MIN - mininmum number of free vnodes | |
206 | # CONFIG_NC_HASH - name cache hash table allocation | |
207 | # CONFIG_VFS_NAMES - name strings | |
208 | # | |
209 | # 263168 magic number for medium CONFIG_VNODES is based on memory | |
210 | # Number vnodes is (memsize/64k) + 1024 | |
211 | # This is the calculation that is used by launchd in tiger | |
212 | # we are clipping the max based on 16G | |
213 | # ie ((16*1024*1024*1024)/(64 *1024)) + 1024 = 263168; | |
214 | ||
215 | options CONFIG_VNODES=263168 # <large,xlarge> | |
216 | options CONFIG_VNODES=263168 # <medium> | |
217 | options CONFIG_VNODES=10240 # <small> | |
b0d623f7 | 218 | options CONFIG_VNODES=750 # <bsmall> |
2d21ac55 A |
219 | |
220 | options CONFIG_VNODE_FREE_MIN=500 # <large,xlarge> | |
221 | options CONFIG_VNODE_FREE_MIN=300 # <medium> | |
222 | options CONFIG_VNODE_FREE_MIN=200 # <small> | |
223 | options CONFIG_VNODE_FREE_MIN=100 # <xsmall> | |
224 | options CONFIG_VNODE_FREE_MIN=75 # <bsmall> | |
225 | ||
226 | options CONFIG_NC_HASH=5120 # <large,xlarge> | |
227 | options CONFIG_NC_HASH=4096 # <medium> | |
228 | options CONFIG_NC_HASH=2048 # <small,xsmall> | |
229 | options CONFIG_NC_HASH=1024 # <bsmall> | |
230 | ||
231 | options CONFIG_VFS_NAMES=5120 # <large,xlarge> | |
232 | options CONFIG_VFS_NAMES=4096 # <medium> | |
233 | options CONFIG_VFS_NAMES=3072 # <small,xsmall> | |
234 | options CONFIG_VFS_NAMES=2048 # <bsmall> | |
235 | ||
b7266188 A |
236 | options CONFIG_MAX_CLUSTERS=8 # <xlarge,large,medium> |
237 | options CONFIG_MAX_CLUSTERS=4 # <small,xsmall,bsmall> | |
238 | ||
2d21ac55 A |
239 | # |
240 | # configurable kauth credential related resources | |
241 | # | |
242 | options KAUTH_CRED_PRIMES_COUNT=7 # <medium,large,xlarge> | |
243 | options KAUTH_CRED_PRIMES_COUNT=3 # <bsmall,xsmall,small> | |
244 | ||
245 | options KAUTH_CRED_PRIMES="{97, 241, 397, 743, 1499, 3989, 7499}" # <medium,large,xlarge> | |
246 | options KAUTH_CRED_PRIMES="{5, 17, 97}" # <bsmall,xsmall,small> | |
247 | ||
248 | # | |
249 | # configurable options for minumum number of buffers for kernel memory | |
250 | # | |
251 | options CONFIG_MIN_NBUF=256 # <medium,large,xlarge> | |
252 | options CONFIG_MIN_NBUF=128 # <small> | |
253 | options CONFIG_MIN_NBUF=80 # <xsmall> | |
254 | options CONFIG_MIN_NBUF=64 # <bsmall> | |
255 | ||
256 | options CONFIG_MIN_NIOBUF=128 # <medium,large,xlarge> | |
257 | options CONFIG_MIN_NIOBUF=64 # <xsmall,small> | |
258 | options CONFIG_MIN_NIOBUF=32 # <bsmall> | |
259 | ||
260 | # | |
261 | # set maximum space used for packet buffers | |
262 | # | |
263 | options CONFIG_NMBCLUSTERS="((1024 * 1024) / MCLBYTES)" # <large,xlarge> | |
264 | options CONFIG_NMBCLUSTERS="((1024 * 512) / MCLBYTES)" # <medium> | |
265 | options CONFIG_NMBCLUSTERS="((1024 * 256) / MCLBYTES)" # <bsmall,xsmall,small> | |
266 | ||
267 | # | |
268 | # Configure size of TCP hash table | |
269 | # | |
270 | options CONFIG_TCBHASHSIZE=4096 # <medium,large,xlarge> | |
271 | options CONFIG_TCBHASHSIZE=128 # <xsmall,small,bsmall> | |
272 | ||
316670eb A |
273 | # |
274 | # Configure bandwidth limiting sysctl | |
275 | # | |
276 | options CONFIG_ICMP_BANDLIM=250 # <medium,large,xlarge> | |
277 | options CONFIG_ICMP_BANDLIM=50 # <xsmall,small,bsmall> | |
278 | ||
2d21ac55 A |
279 | # |
280 | # configurable async IO options | |
281 | # CONFIG_AIO_MAX - system wide limit of async IO requests. | |
282 | # CONFIG_AIO_PROCESS_MAX - process limit of async IO requests. | |
283 | # CONFIG_AIO_THREAD_COUNT - number of async IO worker threads created. | |
284 | # | |
285 | options CONFIG_AIO_MAX=360 # <xlarge> | |
286 | options CONFIG_AIO_MAX=180 # <large> | |
287 | options CONFIG_AIO_MAX=90 # <medium> | |
288 | options CONFIG_AIO_MAX=45 # <small> | |
289 | options CONFIG_AIO_MAX=20 # <xsmall> | |
290 | options CONFIG_AIO_MAX=10 # <bsmall> | |
291 | ||
292 | options CONFIG_AIO_PROCESS_MAX=64 # <xlarge> | |
293 | options CONFIG_AIO_PROCESS_MAX=32 # <large> | |
294 | options CONFIG_AIO_PROCESS_MAX=16 # <medium> | |
295 | options CONFIG_AIO_PROCESS_MAX=12 # <small> | |
296 | options CONFIG_AIO_PROCESS_MAX=8 # <xsmall> | |
297 | options CONFIG_AIO_PROCESS_MAX=4 # <bsmall> | |
298 | ||
299 | options CONFIG_AIO_THREAD_COUNT=16 # <xlarge> | |
300 | options CONFIG_AIO_THREAD_COUNT=8 # <large> | |
301 | options CONFIG_AIO_THREAD_COUNT=4 # <medium> | |
302 | options CONFIG_AIO_THREAD_COUNT=3 # <small> | |
303 | options CONFIG_AIO_THREAD_COUNT=2 # <xsmall,bsmall> | |
304 | ||
2d21ac55 A |
305 | options CONFIG_MAXVIFS=32 # <medium,large,xlarge> |
306 | options CONFIG_MAXVIFS=16 # <small,xsmall> | |
307 | options CONFIG_MAXVIFS=2 # <bsmall> | |
308 | ||
309 | options CONFIG_MFCTBLSIZ=256 # <medium,large,xlarge> | |
310 | options CONFIG_MFCTBLSIZ=128 # <small,xsmall> | |
311 | options CONFIG_MFCTBLSIZ=16 # <bsmall> | |
312 | ||
6d2010ae A |
313 | # |
314 | # configurable kernel message buffer size | |
315 | # | |
316 | options CONFIG_MSG_BSIZE=4096 # <bsmall,small,xsmall> | |
317 | options CONFIG_MSG_BSIZE=16384 # <medium,large,xlarge> | |
318 | ||
2d21ac55 A |
319 | # |
320 | # configurable kernel - use these options to strip strings from panic | |
321 | # and printf calls. | |
322 | # no_panic_str - saves around 50K of kernel footprint. | |
323 | # no_printf_str - saves around 45K of kernel footprint. | |
324 | # | |
325 | options CONFIG_NO_PANIC_STRINGS # <no_panic_str> | |
326 | options CONFIG_NO_PRINTF_STRINGS # <no_printf_str> | |
327 | options CONFIG_NO_KPRINTF_STRINGS # <no_kprintf_str> | |
328 | ||
6d2010ae A |
329 | # |
330 | # use finer-grained lock groups for the proc subsystem | |
331 | # | |
332 | options CONFIG_FINE_LOCK_GROUPS # <medium,large,xlarge> | |
333 | ||
fe8ab488 | 334 | |
b7266188 A |
335 | # support dynamic signing of code |
336 | # | |
337 | options CONFIG_DYNAMIC_CODE_SIGNING # <dynamic_codesigning> | |
338 | ||
fe8ab488 A |
339 | # enforce library validation on all processes. |
340 | # | |
341 | options CONFIG_ENFORCE_LIBRARY_VALIDATION # <config_library_validation> | |
342 | ||
343 | # | |
344 | # code decryption... used on embedded for app protection, DSMOS on desktop | |
345 | # | |
346 | options CONFIG_CODE_DECRYPTION # <config_code_decryption> | |
347 | ||
d1ecb069 A |
348 | # |
349 | # User Content Protection, used on embedded | |
350 | # | |
d1ecb069 A |
351 | options CONFIG_PROTECT # <config_protect> |
352 | ||
6d2010ae | 353 | # |
316670eb A |
354 | # enable per-process memory priority tracking |
355 | # | |
356 | options CONFIG_MEMORYSTATUS # <memorystatus> | |
357 | ||
358 | # | |
359 | # enable jetsam - used on embedded | |
360 | # | |
361 | options CONFIG_JETSAM # <jetsam> | |
362 | ||
363 | # | |
364 | # enable freezing of suspended processes - used on embedded | |
6d2010ae A |
365 | # |
366 | options CONFIG_FREEZE # <freeze> | |
367 | ||
368 | options CHECK_CS_VALIDATION_BITMAP # <config_cs_validation_bitmap> | |
593a1d5f | 369 | |
fe8ab488 A |
370 | # |
371 | # enable detectiion of file cache thrashing - used on platforms with | |
372 | # dynamic VM compression enabled | |
373 | # | |
374 | options CONFIG_PHANTOM_CACHE # <phantom_cache> | |
375 | ||
316670eb A |
376 | # |
377 | # memory pressure event support | |
316670eb A |
378 | # |
379 | options VM_PRESSURE_EVENTS # <vm_pressure_events> | |
380 | ||
fe8ab488 A |
381 | # |
382 | # I/O Scheduling | |
383 | # | |
384 | options CONFIG_IOSCHED # <config_iosched> | |
385 | ||
39236c6e A |
386 | # |
387 | # Enable inheritance of importance through specially marked mach ports and for file locks | |
388 | # For now debug is enabled wherever inheritance is | |
389 | # | |
390 | options IMPORTANCE_INHERITANCE # <importance_inheritance> | |
391 | options IMPORTANCE_DEBUG # <importance_inheritance> | |
392 | ||
393 | options CONFIG_TELEMETRY # <config_telemetry> | |
394 | ||
395 | options CONFIG_PROC_UUID_POLICY # <config_proc_uuid_policy> | |
396 | ||
397 | # | |
398 | # In-kernel tests | |
399 | # | |
400 | options CONFIG_IN_KERNEL_TESTS # <in_kernel_tests> | |
401 | ||
fe8ab488 A |
402 | # |
403 | # ECC data logging | |
404 | # | |
405 | options CONFIG_ECC_LOGGING # <config_ecc_logging> | |
406 | ||
1c79356b A |
407 | # |
408 | # Ethernet (ARP) | |
409 | # | |
39236c6e | 410 | pseudo-device ether # <networking,inet,inet6> |
1c79356b A |
411 | # |
412 | # Network loopback device | |
413 | # | |
39236c6e | 414 | pseudo-device loop # <networking,inet,inet6> |
1c79356b A |
415 | # |
416 | # UCB pseudo terminal service | |
417 | # | |
2d21ac55 A |
418 | pseudo-device pty 512 init pty_init # <xlarge> |
419 | pseudo-device pty 256 init pty_init # <large> | |
420 | pseudo-device pty 128 init pty_init # <medium> | |
421 | pseudo-device pty 48 init pty_init # <small> | |
422 | pseudo-device pty 16 init pty_init # <xsmall> | |
423 | pseudo-device pty 8 init pty_init # <bsmall> | |
424 | # | |
425 | # Cloning pseudo terminal service | |
426 | # | |
427 | pseudo-device ptmx 1 init ptmx_init | |
9bccf70c A |
428 | |
429 | # | |
430 | # vnode device | |
2d21ac55 | 431 | # |
fe8ab488 | 432 | pseudo-device vndevice 4 init vndevice_init # <development,debug> |
9bccf70c | 433 | |
55e303ae A |
434 | # |
435 | # memory device | |
436 | pseudo-device mdevdevice 1 init mdevinit | |
437 | ||
9bccf70c | 438 | # |
1c79356b A |
439 | # |
440 | # packet filter device | |
441 | # | |
39236c6e | 442 | pseudo-device bpfilter 4 init bpf_init # <networking,inet,inet6> |
1c79356b | 443 | |
91447636 A |
444 | # |
445 | # fsevents device | |
2d21ac55 | 446 | pseudo-device fsevents 1 init fsevents_init # <config_fse> |
91447636 | 447 | |
0b4e3aa0 | 448 | pseudo-device random 1 init random_init |
2d21ac55 A |
449 | pseudo-device dtrace 1 init dtrace_init # <config_dtrace> |
450 | pseudo-device helper 1 init helper_init # <config_dtrace> | |
451 | pseudo-device lockstat 1 init lockstat_init # <config_dtrace> | |
452 | pseudo-device sdt 1 init sdt_init # <config_dtrace> | |
453 | pseudo-device systrace 1 init systrace_init # <config_dtrace> | |
454 | pseudo-device fbt 1 init fbt_init # <config_dtrace> | |
455 | pseudo-device profile_prvd 1 init profile_init # <config_dtrace> | |
fe8ab488 A |
456 | |
457 | # | |
458 | # IOKit configuration options | |
459 | # | |
460 | ||
461 | options HIBERNATION # system hibernation # <hibernation> | |
462 | options IOKITCPP # C++ implementation # <iokitcpp> | |
463 | options IOKITSTATS # IOKit statistics # <iokitstats> | |
464 | options CONFIG_SLEEP # # <config_sleep> | |
465 | options CONFIG_MAX_THREADS=64 # IOConfigThread threads | |
466 | options NO_KEXTD # <no_kextd> | |
467 | options NO_KERNEL_HID # <no_kernel_hid> | |
468 | ||
469 | # | |
470 | # Libkern configuration options | |
471 | # | |
472 | ||
473 | options LIBKERNCPP # C++ implementation # <libkerncpp> | |
474 | options CONFIG_KXLD # kxld/runtime linking of kexts # <config_kxld> | |
475 | options CONFIG_KEC_FIPS # Kernel External Components for FIPS compliance (KEC_FIPS) # <config_kec_fips> | |
476 | ||
477 | # Note that when adding this config option to an architecture, one MUST | |
478 | # add the architecture to the preprocessor test at the beginning of | |
479 | # libkern/kmod/cplus_{start.c,stop.c}. | |
480 | options CONFIG_STATIC_CPPINIT # Static library initializes kext cpp runtime # <config_static_cppinit> | |
481 | ||
482 | # | |
483 | # libsa configuration options | |
484 | # | |
485 | ||
486 | # CONFIG_KEXT_BASEMENT - alloc post boot loaded kexts after prelinked kexts | |
487 | # | |
488 | options CONFIG_KEXT_BASEMENT # # <config_kext_basement> | |
489 | ||
490 | # | |
491 | # security configuration options | |
492 | # | |
493 | ||
494 | options CONFIG_LCTX # Login Context | |
495 | ||
496 | options CONFIG_MACF # Mandatory Access Control Framework # <config_macf> | |
497 | options CONFIG_MACF_SOCKET_SUBSET # MAC socket subest (no labels) # <config_macf> | |
498 | #options CONFIG_MACF_SOCKET # MAC socket labels # <config_macf> | |
499 | #options CONFIG_MACF_NET # mbuf # <config_macf> | |
500 | #options CONFIG_MACF_DEBUG # debug # <config_macf> | |
501 | ||
502 | options CONFIG_AUDIT # Kernel auditing # <config_audit> | |
503 | ||
504 | ||
505 | # | |
506 | # MACH configuration options. | |
507 | # | |
508 | # TASK_SWAPPER enables code that manages demand for physical memory by | |
509 | # forcibly suspending tasks when the demand exceeds supply. This | |
510 | # option should be on. | |
511 | # | |
512 | options MACH_PAGEMAP # <mach_pagemap> | |
513 | options MACH_RT | |
514 | options TASK_SWAPPER # <task_swapper_disabled> | |
515 | ||
516 | # | |
517 | # This defines configuration options that are normally used only during | |
518 | # kernel code development and debugging. They add run-time error checks or | |
519 | # statistics gathering, which will slow down the system | |
520 | # | |
521 | ########################################################## | |
522 | # | |
523 | # MACH_ASSERT controls the assert() and ASSERT() macros, used to verify the | |
524 | # consistency of various algorithms in the kernel. The performance impact | |
525 | # of this option is significant. | |
526 | # | |
527 | options MACH_ASSERT # # <mach_assert> | |
528 | # | |
529 | # MACH_DEBUG enables the mach_debug_server, a message interface used to | |
530 | # retrieve or control various statistics. This interface may expose data | |
531 | # structures that would not normally be allowed outside the kernel, and | |
532 | # MUST NOT be enabled on a released configuration. | |
533 | # Other options here enable information retrieval for specific subsystems | |
534 | # | |
535 | options MACH_DEBUG # IPC debugging interface # <mdebug> | |
536 | options MACH_IPC_DEBUG # Enable IPC debugging calls # <ipc_debug> | |
537 | options MACH_VM_DEBUG # # <debug> | |
538 | # | |
539 | # MACH_MP_DEBUG control the possible dead locks that may occur by controlling | |
540 | # that IPL level has been raised down to SPL0 after some calls to | |
541 | # hardclock device driver. | |
542 | # | |
543 | options MACH_MP_DEBUG # # <debug> | |
544 | # | |
545 | # ZONE_DEBUG keeps track of all zalloc()ed elements to perform further | |
546 | # operations on each element. | |
547 | # | |
548 | options ZONE_DEBUG # # <debug> | |
549 | ||
550 | options CONFIG_ZLEAKS # Live zone leak debugging # <zleaks> | |
551 | ||
552 | # | |
553 | options ZONE_ALIAS_ADDR # # <zone_alias_addr> | |
554 | ||
555 | ||
556 | # | |
557 | # CONFIG_TASK_ZONE_INFO allows per-task zone information to be extracted | |
558 | # Primarily useful for xnu debug and development. | |
559 | # | |
560 | options CONFIG_TASK_ZONE_INFO # <task_zone_info> | |
561 | # | |
562 | # CONFIG_DEBUGGER_FOR_ZONE_INFO restricts zone info so that it is only | |
563 | # available when the kernel is being debugged. | |
564 | # | |
565 | options CONFIG_DEBUGGER_FOR_ZONE_INFO # <debugger_for_zone_info> | |
566 | # | |
567 | # XPR_DEBUG enables the gathering of data through the XPR macros inserted | |
568 | # into various subsystems. This option is normally only enabled for | |
569 | # specific performance or behavior studies, as the overhead in both | |
570 | # code and data space is large. The data is normally retrieved through | |
571 | # the kernel debugger (kdb) or by reading /dev/kmem. | |
572 | # | |
573 | options XPR_DEBUG # # <debug> | |
574 | # | |
575 | # MACH_LDEBUG controls the internal consistency checks and | |
576 | # data gathering in the locking package. This also enables a debug-only | |
577 | # version of simple-locks on uniprocessor machines. The code size and | |
578 | # performance impact of this option is significant. | |
579 | # | |
580 | options MACH_LDEBUG # # <debug> | |
581 | ||
582 | # | |
583 | # configuration option for full, partial, or no kernel debug event tracing | |
584 | # | |
585 | options KDEBUG # kernel tracing # <kdebug> | |
586 | options IST_KDEBUG # limited tracing # <ist_kdebug> | |
587 | options NO_KDEBUG # no kernel tracing # <no_kdebug> | |
588 | ||
589 | # | |
590 | # CONFIG_DTRACE enables code needed to support DTrace. Currently this is | |
591 | # only used for delivery of traps/interrupts to DTrace. | |
592 | # | |
593 | options CONFIG_DTRACE # # <config_dtrace> | |
594 | ||
595 | # kernel performance tracing | |
596 | options KPERF # <kperf> | |
597 | options KPC # <kpc> | |
598 | ||
599 | # MACH_COUNTERS enables code that handles various counters in the system. | |
600 | # | |
601 | options MACH_COUNTERS # # <debug> | |
602 | ||
603 | # DEVELOPMENT define for development builds | |
604 | options DEVELOPMENT # dev kernel # <development> | |
605 | ||
606 | # DEBUG kernel | |
607 | options DEBUG # general debugging code # <debug> | |
608 | ||
609 | ########################################################## | |
610 | # | |
611 | # This defines configuration options that are normally used only during | |
612 | # kernel code development and performance characterization. They add run-time | |
613 | # statistics gathering, which will slow down the system, | |
614 | # | |
615 | ########################################################## | |
616 | # | |
617 | # MACH_IPC_STATS controls the collection of statistics in the MACH IPC | |
618 | # subsystem. | |
619 | # | |
620 | #options MACH_IPC_STATS | |
621 | # | |
622 | # MACH_CLUSTER_STATS controls the collection of various statistics concerning | |
623 | # the effectiveness and behavior of the clustered pageout and pagein | |
624 | # code. | |
625 | # | |
626 | #options MACH_CLUSTER_STATS | |
627 | ||
628 | options MACH_BSD # BSD subsystem on top of Mach # <mach_bsd> | |
629 | options IOKIT # # <iokit> | |
630 | ||
631 | # | |
632 | # configurable kernel related resources (CONFIG_THREAD_MAX needs to stay in | |
633 | # sync with bsd/conf/MASTER until we fix the config system... todo XXX | |
634 | # | |
635 | options CONFIG_THREAD_MAX=2560 # <medium,large,xlarge> | |
636 | options CONFIG_THREAD_MAX=1536 # <small,xsmall> | |
637 | options CONFIG_THREAD_MAX=1024 # <bsmall> | |
638 | ||
639 | options CONFIG_TASK_MAX=1024 # <medium,large,xlarge> | |
640 | options CONFIG_TASK_MAX=768 # <small,> | |
641 | options CONFIG_TASK_MAX=512 # <xsmall,bsmall> | |
642 | ||
643 | options CONFIG_ZONE_MAP_MIN=12582912 # <medium,large,xlarge> | |
644 | options CONFIG_ZONE_MAP_MIN=6291456 # <small> | |
645 | options CONFIG_ZONE_MAP_MIN=1048576 # <xsmall,bsmall> | |
646 | ||
647 | # Sizes must be a power of two for the zhash to | |
648 | # be able to just mask off bits instead of mod | |
649 | options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=16384 #<medium,large,xlarge> | |
650 | options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=8192 #<small,xsmall,bsmall> | |
651 | options CONFIG_ZLEAK_TRACE_MAP_NUM=8192 #<medium,large,xlarge> | |
652 | options CONFIG_ZLEAK_TRACE_MAP_NUM=4096 #<small,xsmall,bsmall> | |
653 | ||
654 | # vc_progress_white - make the progress gear white instead of black | |
655 | options CONFIG_VC_PROGRESS_WHITE # <vc_progress_white> | |
656 | ||
657 | # | |
658 | # Context switched counters | |
659 | # | |
660 | options CONFIG_COUNTERS # <config_counters> | |
661 | ||
662 | # | |
663 | # Timeshare scheduler implementations | |
664 | # | |
665 | options CONFIG_SCHED_TRADITIONAL # <config_sched_traditional> | |
666 | options CONFIG_SCHED_PROTO # <config_sched_proto> | |
667 | options CONFIG_SCHED_GRRR # <config_sched_grrr> | |
668 | options CONFIG_SCHED_GRRR_CORE # <config_sched_grrr> | |
669 | options CONFIG_SCHED_MULTIQ # <config_sched_multiq> | |
670 | options CONFIG_SCHED_TIMESHARE_CORE # <config_sched_traditional,config_sched_multiq> | |
671 | options CONFIG_SCHED_FAIRSHARE_CORE # <config_sched_traditional,config_sched_multiq,config_sched_proto> | |
672 | ||
673 | options CONFIG_SCHED_IDLE_IN_PLACE # <config_sched_idle_in_place> | |
674 | options CONFIG_GZALLOC # <config_gzalloc> | |
675 | ||
676 | # Enable allocation of contiguous physical memory through vm_map_enter_cpm() | |
677 | options VM_CPM # <vm_cpm> | |
678 | ||
679 | options CONFIG_SKIP_PRECISE_USER_KERNEL_TIME # <config_skip_precise_user_kernel_time> | |
680 | ||
681 | # | |
682 | # Switch to disable cpu, wakeup and high memory watermark monitors | |
683 | # | |
684 | options CONFIG_NOMONITORS # <config_nomonitors> | |
685 | ||
686 | options MACH_KDP # KDP # <mach_kdp> | |
687 | options CONFIG_SERIAL_KDP # KDP over serial # <config_serial_kdp> | |
688 | options CONFIG_KDP_INTERACTIVE_DEBUGGING # <kdp_interactive_debugging> | |
689 | ||
690 | # | |
691 | # Kernel Voucher Attr Manager for Activity Trace | |
692 | # | |
693 | options CONFIG_ATM # <config_atm> | |
694 | ||
695 | # | |
696 | # Kernel Voucher Attr Manager for BANK | |
697 | # | |
698 | options CONFIG_BANK # <config_bank> | |
699 | ||
700 | ||
701 | # Group related tasks together into coalitions | |
702 | options CONFIG_COALITIONS # <config_coalitions> | |
703 | ||
704 | # Configurable Security Restrictions | |
705 | options CONFIG_CSR # <config_csr> | |
706 | ||
707 | # | |
708 | # Console options | |
709 | # | |
710 | options SERIAL_CONSOLE # bi-directional serial over UART | |
711 | options VIDEO_CONSOLE # uni-directional output over framebuffer | |
712 | ||
713 | # | |
714 | # Syscall options | |
715 | # | |
716 | options CONFIG_REQUIRES_U32_MUNGING # incoming U32 argument structures must be munged to match U64 # <config_requires_u32_munging> |