]>
Commit | Line | Data |
---|---|---|
1c79356b A |
1 | # |
2 | # Mach Operating System | |
3 | # Copyright (c) 1986 Carnegie-Mellon University | |
d9a64523 | 4 | # Copyright 2001-2018 Apple Inc. |
fe8ab488 | 5 | # |
1c79356b A |
6 | # All rights reserved. The CMU software License Agreement |
7 | # specifies the terms and conditions for use and redistribution. | |
cb323159 | 8 | # |
1c79356b A |
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 | |
cb323159 | 51 | # bsmall = special extra small scale system configuration |
1c79356b A |
52 | # |
53 | ####################################################################### | |
1c79356b | 54 | # |
1c79356b | 55 | |
3e170ce0 | 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> |
39037602 | 66 | options MACH_FLIPC # Fast-Local IPC # <mach_flipc> |
1c79356b A |
67 | options MACH_NP # Mach IPC support # <np> |
68 | options MACH_NBC # No buffer cache # <nbc> | |
1c79356b A |
69 | options MACH_NET # Fast network access # <mach_net> |
70 | options MACH_XP # external pager support # <xp> | |
cb323159 | 71 | options NO_DIRECT_RPC # for untyped mig servers # |
1c79356b | 72 | options LOOP # loopback support # <loop> |
1c79356b | 73 | options VLAN # # <vlan> |
cb323159 | 74 | options SIXLOWPAN # 6LoWPAN support # <sixlowpan> |
91447636 | 75 | options BOND # # <bond> |
5ba3f43e | 76 | options IF_FAKE # # <if_fake> |
cb323159 | 77 | options IF_HEADLESS # # <if_headless> |
fe8ab488 | 78 | options AH_ALL_CRYPTO # AH all crypto algs # <ah_all_crypto> |
b0d623f7 | 79 | options PF # Packet Filter # <pf> |
3e170ce0 | 80 | options PF_ECN # PF use ECN marking # <pf_ecn> |
b0d623f7 | 81 | options PFLOG # PF log interface # <pflog> |
39236c6e | 82 | options MEASURE_BW # interface bandwidth measurement # <measure_bw> |
91447636 | 83 | options DUMMYNET # dummynet support # <dummynet> |
2d21ac55 | 84 | options TRAFFIC_MGT # traffic management support # <traffic_mgt> |
1c79356b | 85 | options MULTICAST # Internet Protocol Class-D $ |
9bccf70c | 86 | options TCPDEBUG # TCP debug # <tcpdebug> |
9bccf70c | 87 | options ICMP_BANDLIM # ICMP bandwidth limiting sysctl |
2d21ac55 | 88 | options IFNET_INPUT_SANITY_CHK # allow dlil/ifnet input sanity check # <ifnet_input_chk> |
39236c6e A |
89 | options MULTIPATH # Multipath domain # <multipath> |
90 | options MPTCP # Multipath TCP # <mptcp> | |
3e170ce0 A |
91 | options SYSV_SEM # SVID semaphores # <sysv_sem> |
92 | options SYSV_MSG # SVID messages # <sysv_msg> | |
93 | options SYSV_SHM # SVID shared mem # <sysv_shm> | |
94 | options PSYNCH # pthread synch # <psynch> | |
39236c6e | 95 | options FLOW_DIVERT # <flow_divert> |
fe8ab488 A |
96 | options NECP # <necp> |
97 | options CONTENT_FILTER # # <content_filter> | |
98 | options PACKET_MANGLER # # <packet_mangler> | |
cb323159 | 99 | options SIXLOWPAN # # <sixlowpan> |
2d21ac55 | 100 | # secure_kernel - secure kernel from user programs |
cb323159 | 101 | options SECURE_KERNEL # <secure_kernel> |
1c79356b | 102 | |
b0d623f7 A |
103 | options OLD_SEMWAIT_SIGNAL # old semwait_signal handler |
104 | ||
1c79356b | 105 | # |
cb323159 | 106 | # 4.4 general kernel |
1c79356b | 107 | # |
f427ee49 | 108 | options SOCKETS # socket support # <inet> |
3e170ce0 | 109 | options DIAGNOSTIC # diagnostics # <diagnostic> |
fe8ab488 | 110 | options PROFILE # kernel profiling # <profile> |
2d21ac55 | 111 | options SENDFILE # sendfile # <sendfile> |
f427ee49 | 112 | options NETWORKING # networking layer # <inet> |
2d21ac55 A |
113 | options CONFIG_FSE # file system events # <config_fse> |
114 | options CONFIG_IMAGEBOOT # local image boot # <config_imageboot> | |
cb323159 | 115 | options CONFIG_LOCKERBOOT # locker boot # <config_lockerboot> |
2d21ac55 | 116 | options CONFIG_MBUF_JUMBO # jumbo cluster pool # <config_mbuf_jumbo> |
cb323159 A |
117 | options CONFIG_IMAGEBOOT_IMG4 # authenticate image with AppleImage4 # <config_imageboot_img4> |
118 | options CONFIG_IMAGEBOOT_CHUNKLIST # authenticate image with a chunk list # <config_imageboot_chunklist> | |
593a1d5f A |
119 | |
120 | options CONFIG_WORKQUEUE # <config_workqueue> | |
d9a64523 | 121 | options CONFIG_WORKLOOP_DEBUG # <config_workloop_debug> |
1c79356b A |
122 | |
123 | # | |
cb323159 | 124 | # 4.4 filesystems |
1c79356b | 125 | # |
3e170ce0 | 126 | options MOCKFS # Boot from an executable # <mockfs> |
1c79356b | 127 | options FIFO # fifo support # <fifo> |
1c79356b | 128 | options FDESC # fdesc_fs support # <fdesc> |
1c79356b | 129 | options DEVFS # devfs support # <devfs> |
490019cf | 130 | options ROUTEFS # routefs support # <routefs> |
39037602 | 131 | options NULLFS # nullfs support # <nullfs> |
f427ee49 | 132 | options BINDFS # bindfs support # <bindfs> |
39037602 | 133 | options FS_COMPRESSION # fs compression # <fs_compression> |
3e170ce0 | 134 | options CONFIG_DEV_KMEM # /dev/kmem device for reading KVA # <config_dev_kmem> |
2d21ac55 A |
135 | |
136 | # | |
137 | # file system features | |
138 | # | |
139 | options QUOTA # file system quotas # <quota> | |
2d21ac55 | 140 | options NAMEDSTREAMS # named stream vnop support # <namedstreams> |
39236c6e | 141 | options CONFIG_APPLEDOUBLE # apple double support # <config_appledouble> |
2d21ac55 | 142 | options CONFIG_VOLFS # volfs path support (legacy) # <config_volfs> |
b7266188 | 143 | options CONFIG_IMGSRC_ACCESS # source of imageboot dmg # <config_imgsrc_access> |
6d2010ae | 144 | options CONFIG_TRIGGERS # trigger vnodes # <config_triggers> |
316670eb A |
145 | options CONFIG_EXT_RESOLVER # e.g. memberd # <config_ext_resolver> |
146 | options CONFIG_SEARCHFS # searchfs syscall support # <config_searchfs> | |
813fb2f6 | 147 | options CONFIG_MNT_SUID # allow suid binaries # <config_mnt_suid> |
d9a64523 | 148 | options CONFIG_MNT_ROOTSNAP # allow rooting from snapshot # <config_mnt_rootsnap> |
cb323159 A |
149 | options CONFIG_ROSV_STARTUP # allow read-only system volume startup # <config_rosv_startup> |
150 | options CONFIG_FIRMLINKS # support "firmlinks" # <config_firmlinks> | |
151 | options CONFIG_MOUNT_VM # mount VM volume on startup # <config_mount_vm> | |
f427ee49 | 152 | options CONFIG_MOUNT_PREBOOTRECOVERY # mount Preboot and/or Recovery volume on startup # <config_mount_prebootrecovery> |
cb323159 | 153 | options CONFIG_DATALESS_FILES # support dataless file materialization # <config_dataless_files> |
f427ee49 | 154 | options CONFIG_BASESYSTEMROOT # mount BaseSystem as initial root filesystem on some kinds of startup # <config_basesystemroot> |
1c79356b A |
155 | |
156 | # | |
157 | # NFS support | |
158 | # | |
2d21ac55 A |
159 | options NFSCLIENT # Be an NFS client # <nfsclient> |
160 | options NFSSERVER # Be an NFS server # <nfsserver> | |
cb323159 A |
161 | options CONFIG_NFS_GSS # Support NFS GSSAPI # <config_nfs_gss> |
162 | options CONFIG_NFS4 # Use NFSv4 # <config_nfs4> | |
163 | options CONFIG_NETBOOT # network booting (requires NFSCLIENT) # <config_netboot> | |
1c79356b | 164 | |
1c79356b A |
165 | # |
166 | # Machine Independent Apple Features | |
167 | # | |
3e170ce0 | 168 | profile # build a profiling kernel # <profile> |
1c79356b | 169 | |
cb323159 | 170 | # |
9bccf70c | 171 | # IPv6 Support |
cb323159 | 172 | # |
3e170ce0 A |
173 | options IPSEC # IP security # <ipsec> |
174 | options IPSEC_ESP # IP security # <ipsec> | |
9bccf70c | 175 | |
3e170ce0 A |
176 | pseudo-device gif 1 # <gif> |
177 | pseudo-device dummy 2 # <dummy> | |
178 | pseudo-device stf 1 # <stf> | |
9bccf70c | 179 | |
3e170ce0 A |
180 | options CRYPTO # <ipsec,crypto> |
181 | options CRYPTO_SHA2 # <crypto_sha2> | |
182 | options ENCRYPTED_SWAP # <encrypted_swap> | |
2d21ac55 | 183 | |
d9a64523 A |
184 | options CONFIG_IMG4 # <config_img4> |
185 | ||
3e170ce0 | 186 | options ZLIB # inflate/deflate support # <zlib> |
cb323159 | 187 | options ZLIBC # inflate/deflate support # <zlibc> |
1c79356b | 188 | |
3e170ce0 | 189 | options IF_BRIDGE # <if_bridge> |
b7266188 | 190 | |
2d21ac55 | 191 | # |
cb323159 | 192 | # configurable kernel event related resources |
2d21ac55 A |
193 | # |
194 | options CONFIG_KN_HASHSIZE=64 # <medium,large,xlarge> | |
195 | options CONFIG_KN_HASHSIZE=48 # <small,xsmall> | |
196 | options CONFIG_KN_HASHSIZE=20 # <bsmall> | |
197 | ||
198 | # | |
cb323159 A |
199 | # configurable vfs related resources |
200 | # CONFIG_VNODES - used to pre allocate vnode related resources | |
2d21ac55 A |
201 | # CONFIG_NC_HASH - name cache hash table allocation |
202 | # CONFIG_VFS_NAMES - name strings | |
203 | # | |
cb323159 A |
204 | # 263168 magic number for medium CONFIG_VNODES is based on memory |
205 | # Number vnodes is (memsize/64k) + 1024 | |
2d21ac55 | 206 | # This is the calculation that is used by launchd in tiger |
cb323159 | 207 | # we are clipping the max based on 16G |
2d21ac55 A |
208 | # ie ((16*1024*1024*1024)/(64 *1024)) + 1024 = 263168; |
209 | ||
210 | options CONFIG_VNODES=263168 # <large,xlarge> | |
211 | options CONFIG_VNODES=263168 # <medium> | |
212 | options CONFIG_VNODES=10240 # <small> | |
3e170ce0 | 213 | options CONFIG_VNODES=750 # <bsmall> |
2d21ac55 | 214 | |
2d21ac55 A |
215 | options CONFIG_NC_HASH=5120 # <large,xlarge> |
216 | options CONFIG_NC_HASH=4096 # <medium> | |
217 | options CONFIG_NC_HASH=2048 # <small,xsmall> | |
218 | options CONFIG_NC_HASH=1024 # <bsmall> | |
219 | ||
220 | options CONFIG_VFS_NAMES=5120 # <large,xlarge> | |
221 | options CONFIG_VFS_NAMES=4096 # <medium> | |
222 | options CONFIG_VFS_NAMES=3072 # <small,xsmall> | |
223 | options CONFIG_VFS_NAMES=2048 # <bsmall> | |
224 | ||
b7266188 A |
225 | options CONFIG_MAX_CLUSTERS=8 # <xlarge,large,medium> |
226 | options CONFIG_MAX_CLUSTERS=4 # <small,xsmall,bsmall> | |
227 | ||
2d21ac55 | 228 | # |
cb323159 | 229 | # configurable options for minumum number of buffers for kernel memory |
2d21ac55 A |
230 | # |
231 | options CONFIG_MIN_NBUF=256 # <medium,large,xlarge> | |
232 | options CONFIG_MIN_NBUF=128 # <small> | |
233 | options CONFIG_MIN_NBUF=80 # <xsmall> | |
234 | options CONFIG_MIN_NBUF=64 # <bsmall> | |
235 | ||
236 | options CONFIG_MIN_NIOBUF=128 # <medium,large,xlarge> | |
237 | options CONFIG_MIN_NIOBUF=64 # <xsmall,small> | |
238 | options CONFIG_MIN_NIOBUF=32 # <bsmall> | |
239 | ||
240 | # | |
241 | # set maximum space used for packet buffers | |
242 | # | |
3e170ce0 A |
243 | options CONFIG_NMBCLUSTERS="((1024 * 1024) / MCLBYTES)" # <large,xlarge> |
244 | options CONFIG_NMBCLUSTERS="((1024 * 512) / MCLBYTES)" # <medium> | |
245 | options CONFIG_NMBCLUSTERS="((1024 * 256) / MCLBYTES)" # <bsmall,xsmall,small> | |
2d21ac55 A |
246 | |
247 | # | |
248 | # Configure size of TCP hash table | |
249 | # | |
250 | options CONFIG_TCBHASHSIZE=4096 # <medium,large,xlarge> | |
251 | options CONFIG_TCBHASHSIZE=128 # <xsmall,small,bsmall> | |
252 | ||
316670eb A |
253 | # |
254 | # Configure bandwidth limiting sysctl | |
255 | # | |
256 | options CONFIG_ICMP_BANDLIM=250 # <medium,large,xlarge> | |
257 | options CONFIG_ICMP_BANDLIM=50 # <xsmall,small,bsmall> | |
258 | ||
2d21ac55 | 259 | # |
cb323159 | 260 | # configurable async IO options |
2d21ac55 A |
261 | # CONFIG_AIO_MAX - system wide limit of async IO requests. |
262 | # CONFIG_AIO_PROCESS_MAX - process limit of async IO requests. | |
263 | # CONFIG_AIO_THREAD_COUNT - number of async IO worker threads created. | |
264 | # | |
3e170ce0 A |
265 | options CONFIG_AIO_MAX=360 # <xlarge> |
266 | options CONFIG_AIO_MAX=180 # <large> | |
2d21ac55 A |
267 | options CONFIG_AIO_MAX=90 # <medium> |
268 | options CONFIG_AIO_MAX=45 # <small> | |
269 | options CONFIG_AIO_MAX=20 # <xsmall> | |
270 | options CONFIG_AIO_MAX=10 # <bsmall> | |
271 | ||
272 | options CONFIG_AIO_PROCESS_MAX=64 # <xlarge> | |
273 | options CONFIG_AIO_PROCESS_MAX=32 # <large> | |
274 | options CONFIG_AIO_PROCESS_MAX=16 # <medium> | |
275 | options CONFIG_AIO_PROCESS_MAX=12 # <small> | |
276 | options CONFIG_AIO_PROCESS_MAX=8 # <xsmall> | |
277 | options CONFIG_AIO_PROCESS_MAX=4 # <bsmall> | |
278 | ||
3e170ce0 | 279 | options CONFIG_AIO_THREAD_COUNT=16 # <xlarge> |
2d21ac55 A |
280 | options CONFIG_AIO_THREAD_COUNT=8 # <large> |
281 | options CONFIG_AIO_THREAD_COUNT=4 # <medium> | |
282 | options CONFIG_AIO_THREAD_COUNT=3 # <small> | |
283 | options CONFIG_AIO_THREAD_COUNT=2 # <xsmall,bsmall> | |
284 | ||
3e170ce0 A |
285 | options CONFIG_MAXVIFS=32 # <medium,large,xlarge> |
286 | options CONFIG_MAXVIFS=16 # <small,xsmall> | |
287 | options CONFIG_MAXVIFS=2 # <bsmall> | |
2d21ac55 A |
288 | |
289 | options CONFIG_MFCTBLSIZ=256 # <medium,large,xlarge> | |
290 | options CONFIG_MFCTBLSIZ=128 # <small,xsmall> | |
291 | options CONFIG_MFCTBLSIZ=16 # <bsmall> | |
292 | ||
6d2010ae A |
293 | # |
294 | # configurable kernel message buffer size | |
295 | # | |
f427ee49 A |
296 | options CONFIG_MSG_BSIZE_REL=4096 # <msgb_small> |
297 | options CONFIG_MSG_BSIZE_DEV=4096 # <msgb_small> | |
298 | options CONFIG_MSG_BSIZE_REL=16384 # <msgb_large> | |
299 | options CONFIG_MSG_BSIZE_DEV=131072 # <msgb_large> | |
5ba3f43e A |
300 | options CONFIG_MSG_BSIZE=CONFIG_MSG_BSIZE_REL # <!development,debug> |
301 | options CONFIG_MSG_BSIZE=CONFIG_MSG_BSIZE_DEV # <development,debug> | |
6d2010ae | 302 | |
3e170ce0 A |
303 | # |
304 | # maximum size of the per-process Mach IPC table | |
305 | # | |
306 | options CONFIG_IPC_TABLE_ENTRIES_STEPS=64 # 137898 entries # <bsmall,small,xsmall> | |
307 | options CONFIG_IPC_TABLE_ENTRIES_STEPS=256 # 300714 entries # <medium,large,xlarge> | |
308 | ||
2d21ac55 A |
309 | # |
310 | # configurable kernel - use these options to strip strings from panic | |
311 | # and printf calls. | |
2d21ac55 A |
312 | # no_printf_str - saves around 45K of kernel footprint. |
313 | # | |
2d21ac55 A |
314 | options CONFIG_NO_PRINTF_STRINGS # <no_printf_str> |
315 | options CONFIG_NO_KPRINTF_STRINGS # <no_kprintf_str> | |
316 | ||
f427ee49 A |
317 | # support vsprintf (deprecated in favor of vsnprintf) |
318 | options CONFIG_VSPRINTF # <vsprintf> | |
319 | ||
d9a64523 A |
320 | # |
321 | # configurable kernel - general switch to say we are building for an | |
322 | # embedded device | |
323 | # | |
324 | options CONFIG_EMBEDDED # <config_embedded> | |
325 | ||
f427ee49 A |
326 | options CONFIG_ARROW # <config_arrow> |
327 | ||
fe8ab488 | 328 | |
2a1bd2d3 A |
329 | options NOS_ARM_ASM # <nos_arm_asm> |
330 | options NOS_ARM_PMAP # <nos_arm_pmap> | |
331 | ||
b7266188 A |
332 | # support dynamic signing of code |
333 | # | |
334 | options CONFIG_DYNAMIC_CODE_SIGNING # <dynamic_codesigning> | |
335 | ||
cb323159 | 336 | # enforce library validation on all processes. |
fe8ab488 A |
337 | # |
338 | options CONFIG_ENFORCE_LIBRARY_VALIDATION # <config_library_validation> | |
339 | ||
f427ee49 A |
340 | # support loading a second static trust cache |
341 | # | |
342 | options CONFIG_SECOND_STATIC_TRUST_CACHE # <second_static_trust_cache> | |
343 | ||
344 | # support supplemental signatures | |
345 | # | |
346 | options CONFIG_SUPPLEMENTAL_SIGNATURES # <config_supplemental_signatures> | |
347 | ||
fe8ab488 A |
348 | # |
349 | # code decryption... used on embedded for app protection, DSMOS on desktop | |
350 | # | |
3e170ce0 | 351 | options CONFIG_CODE_DECRYPTION # <config_code_decryption> |
fe8ab488 | 352 | |
d1ecb069 A |
353 | # |
354 | # User Content Protection, used on embedded | |
355 | # | |
3e170ce0 | 356 | options CONFIG_PROTECT # <config_protect> |
d1ecb069 | 357 | |
d9a64523 A |
358 | #allow write-protection of key page |
359 | options CONFIG_KEYPAGE_WP # <config_keypage_wp> | |
360 | ||
cb323159 A |
361 | # |
362 | # allow vm_pageout_scan to dynamically adjust its priority based on priorities of waiters | |
363 | # | |
364 | options CONFIG_VPS_DYNAMIC_PRIO # <vps_dynamic_prio> | |
365 | ||
6d2010ae | 366 | # |
316670eb A |
367 | # enable per-process memory priority tracking |
368 | # | |
3e170ce0 | 369 | options CONFIG_MEMORYSTATUS # <memorystatus> |
316670eb | 370 | |
f427ee49 A |
371 | # |
372 | # enable per-process dirty-status tracking | |
373 | # | |
374 | options CONFIG_DIRTYSTATUS_TRACKING # <dirtystatus_tracking> | |
316670eb A |
375 | # |
376 | # enable jetsam - used on embedded | |
377 | # | |
3e170ce0 A |
378 | options CONFIG_JETSAM # <jetsam> |
379 | ||
39037602 A |
380 | # |
381 | # enable new link table implementation stats/debugging | |
382 | # (adds mesaureable overhead) | |
383 | # | |
384 | options CONFIG_LTABLE_STATS # <config_ltable_stats> | |
385 | options CONFIG_LTABLE_DEBUG # <config_ltable_debug> | |
386 | ||
3e170ce0 A |
387 | # |
388 | # enable new wait queue implementation stats / debugging | |
389 | # | |
390 | options CONFIG_WAITQ_STATS # <config_waitq_stats> | |
391 | options CONFIG_WAITQ_DEBUG # <config_waitq_debug> | |
316670eb A |
392 | |
393 | # | |
394 | # enable freezing of suspended processes - used on embedded | |
6d2010ae | 395 | # |
3e170ce0 | 396 | options CONFIG_FREEZE # <freeze> |
6d2010ae | 397 | |
3e170ce0 | 398 | options CHECK_CS_VALIDATION_BITMAP # <config_cs_validation_bitmap> |
593a1d5f | 399 | |
f427ee49 A |
400 | # |
401 | # enable physical writes accounting | |
402 | # | |
403 | options CONFIG_PHYS_WRITE_ACCT # <phys_write_acct> | |
404 | ||
fe8ab488 A |
405 | # |
406 | # enable detectiion of file cache thrashing - used on platforms with | |
407 | # dynamic VM compression enabled | |
408 | # | |
3e170ce0 | 409 | options CONFIG_PHANTOM_CACHE # <phantom_cache> |
fe8ab488 | 410 | |
316670eb A |
411 | # |
412 | # memory pressure event support | |
316670eb A |
413 | # |
414 | options VM_PRESSURE_EVENTS # <vm_pressure_events> | |
415 | ||
39037602 A |
416 | options CONFIG_SECLUDED_MEMORY # <config_secluded_memory> |
417 | ||
418 | options CONFIG_BACKGROUND_QUEUE # <config_background_queue> | |
419 | ||
d9a64523 A |
420 | # |
421 | # Ledger features | |
422 | # | |
423 | options CONFIG_LEDGER_INTERVAL_MAX # <config_ledger_interval_max> | |
424 | ||
fe8ab488 A |
425 | # |
426 | # I/O Scheduling | |
427 | # | |
428 | options CONFIG_IOSCHED # <config_iosched> | |
429 | ||
39037602 A |
430 | # |
431 | # Accounting for I/O usage | |
432 | # | |
433 | options CONFIG_IO_ACCOUNTING # <config_io_accounting> | |
434 | ||
39236c6e A |
435 | # |
436 | # Enable inheritance of importance through specially marked mach ports and for file locks | |
437 | # For now debug is enabled wherever inheritance is | |
438 | # | |
439 | options IMPORTANCE_INHERITANCE # <importance_inheritance> | |
5ba3f43e A |
440 | options IMPORTANCE_TRACE # <importance_trace> |
441 | options IMPORTANCE_DEBUG # <importance_debug> | |
39236c6e | 442 | |
3e170ce0 | 443 | options CONFIG_TELEMETRY # <config_telemetry> |
39236c6e A |
444 | |
445 | options CONFIG_PROC_UUID_POLICY # <config_proc_uuid_policy> | |
446 | ||
fe8ab488 A |
447 | # |
448 | # ECC data logging | |
cb323159 | 449 | # |
3e170ce0 | 450 | options CONFIG_ECC_LOGGING # <config_ecc_logging> |
fe8ab488 | 451 | |
39037602 A |
452 | # |
453 | # Application core dumps | |
454 | # | |
455 | options CONFIG_COREDUMP # <config_coredump> | |
456 | ||
5ba3f43e A |
457 | # |
458 | # Vnode guards | |
459 | # | |
460 | options CONFIG_VNGUARD # <config_vnguard> | |
461 | ||
1c79356b A |
462 | # |
463 | # Ethernet (ARP) | |
464 | # | |
f427ee49 | 465 | pseudo-device ether # <networking,inet> |
1c79356b A |
466 | # |
467 | # Network loopback device | |
468 | # | |
f427ee49 | 469 | pseudo-device loop # <networking,inet> |
1c79356b A |
470 | # |
471 | # UCB pseudo terminal service | |
472 | # | |
2d21ac55 A |
473 | pseudo-device pty 512 init pty_init # <xlarge> |
474 | pseudo-device pty 256 init pty_init # <large> | |
475 | pseudo-device pty 128 init pty_init # <medium> | |
476 | pseudo-device pty 48 init pty_init # <small> | |
477 | pseudo-device pty 16 init pty_init # <xsmall> | |
478 | pseudo-device pty 8 init pty_init # <bsmall> | |
479 | # | |
480 | # Cloning pseudo terminal service | |
481 | # | |
482 | pseudo-device ptmx 1 init ptmx_init | |
9bccf70c A |
483 | |
484 | # | |
485 | # vnode device | |
2d21ac55 | 486 | # |
fe8ab488 | 487 | pseudo-device vndevice 4 init vndevice_init # <development,debug> |
9bccf70c | 488 | |
55e303ae A |
489 | # |
490 | # memory device | |
491 | pseudo-device mdevdevice 1 init mdevinit | |
492 | ||
9bccf70c | 493 | # |
1c79356b A |
494 | # |
495 | # packet filter device | |
496 | # | |
f427ee49 | 497 | pseudo-device bpfilter 4 init bpf_init # <networking,inet> |
1c79356b | 498 | |
91447636 A |
499 | # |
500 | # fsevents device | |
2d21ac55 | 501 | pseudo-device fsevents 1 init fsevents_init # <config_fse> |
91447636 | 502 | |
0b4e3aa0 | 503 | pseudo-device random 1 init random_init |
2d21ac55 A |
504 | pseudo-device dtrace 1 init dtrace_init # <config_dtrace> |
505 | pseudo-device helper 1 init helper_init # <config_dtrace> | |
506 | pseudo-device lockstat 1 init lockstat_init # <config_dtrace> | |
0a7de745 | 507 | pseudo-device lockprof 1 init lockprof_init # <config_dtrace> |
2d21ac55 A |
508 | pseudo-device sdt 1 init sdt_init # <config_dtrace> |
509 | pseudo-device systrace 1 init systrace_init # <config_dtrace> | |
510 | pseudo-device fbt 1 init fbt_init # <config_dtrace> | |
511 | pseudo-device profile_prvd 1 init profile_init # <config_dtrace> | |
fe8ab488 | 512 | |
5ba3f43e | 513 | |
fe8ab488 A |
514 | # |
515 | # IOKit configuration options | |
516 | # | |
517 | ||
518 | options HIBERNATION # system hibernation # <hibernation> | |
3e170ce0 A |
519 | options IOKITCPP # C++ implementation # <iokitcpp> |
520 | options IOKITSTATS # IOKit statistics # <iokitstats> | |
521 | options IOTRACKING # IOKit tracking # <iotracking> | |
522 | options CONFIG_SLEEP # # <config_sleep> | |
f427ee49 | 523 | options CONFIG_MAX_THREADS=500 # IOConfigThread threads |
3e170ce0 A |
524 | options NO_KEXTD # <no_kextd> |
525 | options NO_KERNEL_HID # <no_kernel_hid> | |
fe8ab488 A |
526 | |
527 | # | |
528 | # Libkern configuration options | |
529 | # | |
530 | ||
531 | options LIBKERNCPP # C++ implementation # <libkerncpp> | |
d9a64523 | 532 | options CONFIG_BLOCKS # Blocks runtime # <config_blocks> |
fe8ab488 A |
533 | options CONFIG_KXLD # kxld/runtime linking of kexts # <config_kxld> |
534 | options CONFIG_KEC_FIPS # Kernel External Components for FIPS compliance (KEC_FIPS) # <config_kec_fips> | |
535 | ||
536 | # Note that when adding this config option to an architecture, one MUST | |
537 | # add the architecture to the preprocessor test at the beginning of | |
538 | # libkern/kmod/cplus_{start.c,stop.c}. | |
539 | options CONFIG_STATIC_CPPINIT # Static library initializes kext cpp runtime # <config_static_cppinit> | |
540 | ||
541 | # | |
542 | # libsa configuration options | |
543 | # | |
544 | ||
545 | # CONFIG_KEXT_BASEMENT - alloc post boot loaded kexts after prelinked kexts | |
546 | # | |
3e170ce0 | 547 | options CONFIG_KEXT_BASEMENT # # <config_kext_basement> |
fe8ab488 | 548 | |
490019cf A |
549 | # |
550 | # Persona Management | |
551 | # | |
552 | options CONFIG_PERSONAS # Persona management # <config_personas> | |
553 | options PERSONA_DEBUG # Persona debugging # <persona_debug> | |
554 | ||
fe8ab488 A |
555 | # |
556 | # security configuration options | |
557 | # | |
558 | ||
3e170ce0 | 559 | options CONFIG_MACF # Mandatory Access Control Framework # <config_macf> |
fe8ab488 | 560 | options CONFIG_MACF_SOCKET_SUBSET # MAC socket subest (no labels) # <config_macf> |
3e170ce0 | 561 | #options CONFIG_MACF_DEBUG # debug # <config_macf> |
fe8ab488 | 562 | |
3e170ce0 | 563 | options CONFIG_AUDIT # Kernel auditing # <config_audit> |
fe8ab488 | 564 | |
cb323159 | 565 | options CONFIG_ARCADE # Arcade validation support # <config_arcade> |
fe8ab488 | 566 | |
f427ee49 A |
567 | options CONFIG_SETUID # setuid/setgid support # <config_setuid> |
568 | ||
569 | options CONFIG_SECURE_BSD_ROOT # secure BSD root # <config_secure_bsd_root> | |
570 | ||
571 | options CONFIG_KAS_INFO # kas_info support # <config_kas_info> | |
572 | ||
fe8ab488 A |
573 | # |
574 | # MACH configuration options. | |
575 | # | |
576 | # TASK_SWAPPER enables code that manages demand for physical memory by | |
577 | # forcibly suspending tasks when the demand exceeds supply. This | |
578 | # option should be on. | |
579 | # | |
fe8ab488 A |
580 | options TASK_SWAPPER # <task_swapper_disabled> |
581 | ||
582 | # | |
583 | # This defines configuration options that are normally used only during | |
584 | # kernel code development and debugging. They add run-time error checks or | |
585 | # statistics gathering, which will slow down the system | |
586 | # | |
587 | ########################################################## | |
588 | # | |
589 | # MACH_ASSERT controls the assert() and ASSERT() macros, used to verify the | |
590 | # consistency of various algorithms in the kernel. The performance impact | |
591 | # of this option is significant. | |
592 | # | |
593 | options MACH_ASSERT # # <mach_assert> | |
594 | # | |
595 | # MACH_DEBUG enables the mach_debug_server, a message interface used to | |
596 | # retrieve or control various statistics. This interface may expose data | |
597 | # structures that would not normally be allowed outside the kernel, and | |
598 | # MUST NOT be enabled on a released configuration. | |
599 | # Other options here enable information retrieval for specific subsystems | |
600 | # | |
601 | options MACH_DEBUG # IPC debugging interface # <mdebug> | |
602 | options MACH_IPC_DEBUG # Enable IPC debugging calls # <ipc_debug> | |
3e170ce0 | 603 | options MACH_VM_DEBUG # # <debug> |
fe8ab488 A |
604 | # |
605 | # MACH_MP_DEBUG control the possible dead locks that may occur by controlling | |
606 | # that IPL level has been raised down to SPL0 after some calls to | |
607 | # hardclock device driver. | |
608 | # | |
3e170ce0 | 609 | options MACH_MP_DEBUG # # <debug> |
f427ee49 | 610 | options CONFIG_ZCACHE # Enable per-cpu caching for zones # <config_zcache> |
fe8ab488 A |
611 | options CONFIG_ZLEAKS # Live zone leak debugging # <zleaks> |
612 | ||
fe8ab488 A |
613 | # |
614 | # CONFIG_TASK_ZONE_INFO allows per-task zone information to be extracted | |
615 | # Primarily useful for xnu debug and development. | |
616 | # | |
617 | options CONFIG_TASK_ZONE_INFO # <task_zone_info> | |
618 | # | |
619 | # CONFIG_DEBUGGER_FOR_ZONE_INFO restricts zone info so that it is only | |
620 | # available when the kernel is being debugged. | |
621 | # | |
622 | options CONFIG_DEBUGGER_FOR_ZONE_INFO # <debugger_for_zone_info> | |
cb323159 | 623 | # |
fe8ab488 A |
624 | # MACH_LDEBUG controls the internal consistency checks and |
625 | # data gathering in the locking package. This also enables a debug-only | |
626 | # version of simple-locks on uniprocessor machines. The code size and | |
627 | # performance impact of this option is significant. | |
cb323159 | 628 | # |
fe8ab488 A |
629 | options MACH_LDEBUG # # <debug> |
630 | ||
631 | # | |
632 | # configuration option for full, partial, or no kernel debug event tracing | |
633 | # | |
634 | options KDEBUG # kernel tracing # <kdebug> | |
635 | options IST_KDEBUG # limited tracing # <ist_kdebug> | |
3e170ce0 | 636 | options NO_KDEBUG # no kernel tracing # <no_kdebug> |
fe8ab488 A |
637 | |
638 | # | |
639 | # CONFIG_DTRACE enables code needed to support DTrace. Currently this is | |
640 | # only used for delivery of traps/interrupts to DTrace. | |
641 | # | |
3e170ce0 | 642 | options CONFIG_DTRACE # # <config_dtrace> |
fe8ab488 | 643 | |
0a7de745 A |
644 | options LOCK_STATS # # <lock_stats> |
645 | ||
fe8ab488 A |
646 | # kernel performance tracing |
647 | options KPERF # <kperf> | |
648 | options KPC # <kpc> | |
649 | ||
5ba3f43e | 650 | |
813fb2f6 A |
651 | options PGO # <pgo> |
652 | ||
fe8ab488 | 653 | # MACH_COUNTERS enables code that handles various counters in the system. |
cb323159 | 654 | # |
3e170ce0 | 655 | options MACH_COUNTERS # # <debug> |
fe8ab488 A |
656 | |
657 | # DEVELOPMENT define for development builds | |
3e170ce0 | 658 | options DEVELOPMENT # dev kernel # <development> |
fe8ab488 A |
659 | |
660 | # DEBUG kernel | |
3e170ce0 | 661 | options DEBUG # general debugging code # <debug> |
cb323159 | 662 | options CONFIG_NONFATAL_ASSERTS # non fatal asserts # <softasserts> |
fe8ab488 A |
663 | |
664 | ########################################################## | |
665 | # | |
666 | # This defines configuration options that are normally used only during | |
667 | # kernel code development and performance characterization. They add run-time | |
668 | # statistics gathering, which will slow down the system, | |
669 | # | |
670 | ########################################################## | |
671 | # | |
672 | # MACH_IPC_STATS controls the collection of statistics in the MACH IPC | |
673 | # subsystem. | |
674 | # | |
675 | #options MACH_IPC_STATS | |
676 | # | |
677 | # MACH_CLUSTER_STATS controls the collection of various statistics concerning | |
678 | # the effectiveness and behavior of the clustered pageout and pagein | |
679 | # code. | |
680 | # | |
681 | #options MACH_CLUSTER_STATS | |
682 | ||
683 | options MACH_BSD # BSD subsystem on top of Mach # <mach_bsd> | |
684 | options IOKIT # # <iokit> | |
685 | ||
686 | # | |
cb323159 | 687 | # configurable kernel related resources (CONFIG_THREAD_MAX needs to stay in |
fe8ab488 A |
688 | # sync with bsd/conf/MASTER until we fix the config system... todo XXX |
689 | # | |
690 | options CONFIG_THREAD_MAX=2560 # <medium,large,xlarge> | |
691 | options CONFIG_THREAD_MAX=1536 # <small,xsmall> | |
692 | options CONFIG_THREAD_MAX=1024 # <bsmall> | |
693 | ||
694 | options CONFIG_TASK_MAX=1024 # <medium,large,xlarge> | |
695 | options CONFIG_TASK_MAX=768 # <small,> | |
696 | options CONFIG_TASK_MAX=512 # <xsmall,bsmall> | |
697 | ||
0a7de745 A |
698 | # |
699 | # Minimum zone map size: 115 MB | |
700 | # | |
701 | options CONFIG_ZONE_MAP_MIN=120586240 # <xsmall,bsmall,small,medium,large,xlarge> | |
fe8ab488 | 702 | |
cb323159 A |
703 | # Sizes must be a power of two for the zhash to |
704 | # be able to just mask off bits instead of mod | |
fe8ab488 A |
705 | options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=16384 #<medium,large,xlarge> |
706 | options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=8192 #<small,xsmall,bsmall> | |
707 | options CONFIG_ZLEAK_TRACE_MAP_NUM=8192 #<medium,large,xlarge> | |
708 | options CONFIG_ZLEAK_TRACE_MAP_NUM=4096 #<small,xsmall,bsmall> | |
709 | ||
710 | # vc_progress_white - make the progress gear white instead of black | |
711 | options CONFIG_VC_PROGRESS_WHITE # <vc_progress_white> | |
712 | ||
fe8ab488 A |
713 | # |
714 | # Timeshare scheduler implementations | |
715 | # | |
716 | options CONFIG_SCHED_TRADITIONAL # <config_sched_traditional> | |
717 | options CONFIG_SCHED_PROTO # <config_sched_proto> | |
718 | options CONFIG_SCHED_GRRR # <config_sched_grrr> | |
719 | options CONFIG_SCHED_GRRR_CORE # <config_sched_grrr> | |
720 | options CONFIG_SCHED_MULTIQ # <config_sched_multiq> | |
721 | options CONFIG_SCHED_TIMESHARE_CORE # <config_sched_traditional,config_sched_multiq> | |
cb323159 | 722 | options CONFIG_CLUTCH # <config_clutch> |
f427ee49 | 723 | options CONFIG_SCHED_AUTO_JOIN # <config_sched_auto_join> |
fe8ab488 | 724 | |
3e170ce0 A |
725 | options CONFIG_SCHED_IDLE_IN_PLACE # <config_sched_idle_in_place> |
726 | options CONFIG_SCHED_SFI # <config_sched_sfi> | |
fe8ab488 | 727 | options CONFIG_GZALLOC # <config_gzalloc> |
3e170ce0 | 728 | options CONFIG_SCHED_DEFERRED_AST # <config_sched_deferred_ast> |
fe8ab488 A |
729 | |
730 | # Enable allocation of contiguous physical memory through vm_map_enter_cpm() | |
3e170ce0 | 731 | options VM_CPM # <vm_cpm> |
fe8ab488 | 732 | |
3e170ce0 | 733 | options CONFIG_SKIP_PRECISE_USER_KERNEL_TIME # <config_skip_precise_user_kernel_time> |
fe8ab488 A |
734 | |
735 | # | |
736 | # Switch to disable cpu, wakeup and high memory watermark monitors | |
737 | # | |
3e170ce0 | 738 | options CONFIG_NOMONITORS # <config_nomonitors> |
fe8ab488 | 739 | |
3e170ce0 A |
740 | options MACH_KDP # KDP # <mach_kdp> |
741 | options CONFIG_SERIAL_KDP # KDP over serial # <config_serial_kdp> | |
fe8ab488 A |
742 | options CONFIG_KDP_INTERACTIVE_DEBUGGING # <kdp_interactive_debugging> |
743 | ||
f427ee49 | 744 | options CONFIG_TASKWATCH |
3e170ce0 A |
745 | # |
746 | # Kernel Power On Self Tests | |
747 | # | |
748 | options CONFIG_XNUPOST # <config_xnupost> | |
749 | ||
750 | # | |
751 | # Kernel proc reference instrumentation | |
752 | # | |
753 | options PROC_REF_DEBUG # <proc_ref_debug> | |
754 | ||
39037602 A |
755 | # |
756 | # Kernel OS reason debug instrumentation | |
757 | # | |
758 | options OS_REASON_DEBUG # <os_reason_debug> | |
759 | ||
fe8ab488 A |
760 | # |
761 | # Kernel Voucher Attr Manager for Activity Trace | |
762 | # | |
3e170ce0 | 763 | options CONFIG_ATM # <config_atm> |
fe8ab488 | 764 | |
fe8ab488 A |
765 | # Group related tasks together into coalitions |
766 | options CONFIG_COALITIONS # <config_coalitions> | |
767 | ||
3e170ce0 A |
768 | # Enable support for sysdiagnose notifications |
769 | options CONFIG_SYSDIAGNOSE # <config_sysdiagnose> | |
770 | ||
fe8ab488 | 771 | # Configurable Security Restrictions |
3e170ce0 | 772 | options CONFIG_CSR # <config_csr> |
f427ee49 | 773 | options CONFIG_CSR_FROM_DT # <config_csr_from_dt> |
fe8ab488 A |
774 | |
775 | # | |
776 | # Console options | |
777 | # | |
778 | options SERIAL_CONSOLE # bi-directional serial over UART | |
779 | options VIDEO_CONSOLE # uni-directional output over framebuffer | |
780 | ||
781 | # | |
782 | # Syscall options | |
783 | # | |
784 | options CONFIG_REQUIRES_U32_MUNGING # incoming U32 argument structures must be munged to match U64 # <config_requires_u32_munging> | |
5ba3f43e A |
785 | |
786 | # | |
787 | # copyout() instrumentation | |
788 | # | |
789 | options COPYOUT_SHIM # Shim for copyout memory analysis via kext #<copyout_shim> | |
790 | ||
0a7de745 | 791 | # |
cb323159 | 792 | # Enable hardware correlation of mach absolute time |
0a7de745 A |
793 | # across intel/arm boundary |
794 | options CONFIG_MACH_BRIDGE_SEND_TIME # # <config_mach_bridge_send_time> | |
795 | options CONFIG_MACH_BRIDGE_RECV_TIME # # <config_mach_bridge_recv_time> | |
527f9951 A |
796 | |
797 | # | |
798 | # Telemetry for 32-bit process launch | |
799 | # | |
800 | options CONFIG_32BIT_TELEMETRY # # <config_32bit_telemetry> | |
d9a64523 A |
801 | |
802 | options CONFIG_QUIESCE_COUNTER # Support for _COMM_PAGE_CPU_QUIESCENT_COUNTER # <config_quiesce_counter> | |
f427ee49 | 803 | options CONFIG_ARM_PFZ # Support for PFZ on ARM # <config_arm_pfz> |
d9a64523 | 804 | |
cb323159 A |
805 | # |
806 | # Sanitizers | |
807 | # | |
808 | options CONFIG_KASAN # <config_kasan> | |
809 | options CONFIG_UBSAN # <config_ubsan> | |
810 | options CONFIG_KSANCOV # <config_ksancov> | |
811 | ||
f427ee49 A |
812 | # dark boot support |
813 | options CONFIG_DARKBOOT # <config_darkboot> | |
814 | ||
815 | # support for processes delaying idle sleep for pending IO | |
816 | options CONFIG_DELAY_IDLE_SLEEP # <config_delay_idle_sleep> | |
817 | ||
818 | # support for storing a 64-bit user supplied value in the proc structure | |
819 | options CONFIG_PROC_UDATA_STORAGE # <config_proc_udata_storage> | |
820 | ||
cb323159 | 821 | pseudo-device ksancov 1 init ksancov_init_dev # <config_ksancov> |
f427ee49 A |
822 | |
823 | # debug instrumentation to catch code that leaves interrupts masked | |
824 | # for an excessive period of time | |
825 | options INTERRUPT_MASKED_DEBUG # <interrupt_masked_debug> |