1*a1e26a70SApple OSS Distributions# 2*a1e26a70SApple OSS Distributions# Mach Operating System 3*a1e26a70SApple OSS Distributions# Copyright (c) 1986 Carnegie-Mellon University 4*a1e26a70SApple OSS Distributions# Copyright 2001-2018 Apple Inc. 5*a1e26a70SApple OSS Distributions# 6*a1e26a70SApple OSS Distributions# All rights reserved. The CMU software License Agreement 7*a1e26a70SApple OSS Distributions# specifies the terms and conditions for use and redistribution. 8*a1e26a70SApple OSS Distributions# 9*a1e26a70SApple OSS Distributions####################################################################### 10*a1e26a70SApple OSS Distributions# 11*a1e26a70SApple OSS Distributions# Master machine independent configuration file. 12*a1e26a70SApple OSS Distributions# 13*a1e26a70SApple OSS Distributions# Specific configuration files are created based on this and 14*a1e26a70SApple OSS Distributions# the machine specific master file using the doconf script. 15*a1e26a70SApple OSS Distributions# 16*a1e26a70SApple OSS Distributions# Any changes to the master configuration files will affect all 17*a1e26a70SApple OSS Distributions# other configuration files based upon it. 18*a1e26a70SApple OSS Distributions# 19*a1e26a70SApple OSS Distributions####################################################################### 20*a1e26a70SApple OSS Distributions# 21*a1e26a70SApple OSS Distributions# To build a configuration, execute "doconf <configuration>." 22*a1e26a70SApple OSS Distributions# Configurations are specified in the "Configurations:" section 23*a1e26a70SApple OSS Distributions# of the MASTER and MASTER.* files as follows: 24*a1e26a70SApple OSS Distributions# 25*a1e26a70SApple OSS Distributions# <configuration> = [ <attribute0> <attribute1> ... <attributeN> ] 26*a1e26a70SApple OSS Distributions# 27*a1e26a70SApple OSS Distributions# Lines in the MASTER and MASTER.* files are selected based on 28*a1e26a70SApple OSS Distributions# the attribute selector list, found in a comment at the end of 29*a1e26a70SApple OSS Distributions# the line. This is a list of attributes separated by commas. 30*a1e26a70SApple OSS Distributions# The "!" operator selects the line if none of the attributes are 31*a1e26a70SApple OSS Distributions# specified. 32*a1e26a70SApple OSS Distributions# 33*a1e26a70SApple OSS Distributions# For example: 34*a1e26a70SApple OSS Distributions# 35*a1e26a70SApple OSS Distributions# <foo,bar> selects a line if "foo" or "bar" are specified. 36*a1e26a70SApple OSS Distributions# <!foo,bar> selects a line if neither "foo" nor "bar" is 37*a1e26a70SApple OSS Distributions# specified. 38*a1e26a70SApple OSS Distributions# 39*a1e26a70SApple OSS Distributions# Lines with no attributes specified are selected for all 40*a1e26a70SApple OSS Distributions# configurations. 41*a1e26a70SApple OSS Distributions# 42*a1e26a70SApple OSS Distributions####################################################################### 43*a1e26a70SApple OSS Distributions# 44*a1e26a70SApple OSS Distributions# SYSTEM SIZE CONFIGURATION (select exactly one) 45*a1e26a70SApple OSS Distributions# 46*a1e26a70SApple OSS Distributions# xlarge = extra large scale system configuration 47*a1e26a70SApple OSS Distributions# large = large scale system configuration 48*a1e26a70SApple OSS Distributions# medium = medium scale system configuration 49*a1e26a70SApple OSS Distributions# small = small scale system configuration 50*a1e26a70SApple OSS Distributions# xsmall = extra small scale system configuration 51*a1e26a70SApple OSS Distributions# bsmall = special extra small scale system configuration 52*a1e26a70SApple OSS Distributions# 53*a1e26a70SApple OSS Distributions####################################################################### 54*a1e26a70SApple OSS Distributions# 55*a1e26a70SApple OSS Distributions 56*a1e26a70SApple OSS Distributionsoptions INET # # <inet> 57*a1e26a70SApple OSS Distributions 58*a1e26a70SApple OSS Distributionsoptions MACH # Standard Mach features # <mach> 59*a1e26a70SApple OSS Distributionsoptions MACH_FLIPC # Fast-Local IPC # <mach_flipc> 60*a1e26a70SApple OSS Distributionsoptions LOOP # loopback support # <loop> 61*a1e26a70SApple OSS Distributionsoptions VLAN # # <vlan> 62*a1e26a70SApple OSS Distributionsoptions BOND # # <bond> 63*a1e26a70SApple OSS Distributionsoptions IF_FAKE # # <if_fake> 64*a1e26a70SApple OSS Distributionsoptions IF_HEADLESS # # <if_headless> 65*a1e26a70SApple OSS Distributionsoptions IF_REDIRECT # # <if_redirect> 66*a1e26a70SApple OSS Distributionsoptions AH_ALL_CRYPTO # AH all crypto algs # <ah_all_crypto> 67*a1e26a70SApple OSS Distributionsoptions PF # Packet Filter # <pf> 68*a1e26a70SApple OSS Distributionsoptions PF_ECN # PF use ECN marking # <pf_ecn> 69*a1e26a70SApple OSS Distributionsoptions PFLOG # PF log interface # <pflog> 70*a1e26a70SApple OSS Distributionsoptions MEASURE_BW # interface bandwidth measurement # <measure_bw> 71*a1e26a70SApple OSS Distributionsoptions DUMMYNET # dummynet support # <dummynet> 72*a1e26a70SApple OSS Distributionsoptions TRAFFIC_MGT # traffic management support # <traffic_mgt> 73*a1e26a70SApple OSS Distributionsoptions MULTICAST # Internet Protocol Class-D $ 74*a1e26a70SApple OSS Distributionsoptions IFNET_INPUT_SANITY_CHK # allow dlil/ifnet input sanity check # <ifnet_input_chk> 75*a1e26a70SApple OSS Distributionsoptions MULTIPATH # Multipath domain # <multipath> 76*a1e26a70SApple OSS Distributionsoptions MPTCP # Multipath TCP # <mptcp> 77*a1e26a70SApple OSS Distributionsoptions SYSV_SEM # SVID semaphores # <sysv_sem> 78*a1e26a70SApple OSS Distributionsoptions SYSV_MSG # SVID messages # <sysv_msg> 79*a1e26a70SApple OSS Distributionsoptions SYSV_SHM # SVID shared mem # <sysv_shm> 80*a1e26a70SApple OSS Distributionsoptions PSYNCH # pthread synch # <psynch> 81*a1e26a70SApple OSS Distributionsoptions FLOW_DIVERT # <flow_divert> 82*a1e26a70SApple OSS Distributionsoptions NECP # <necp> 83*a1e26a70SApple OSS Distributionsoptions CONTENT_FILTER # # <content_filter> 84*a1e26a70SApple OSS Distributionsoptions PACKET_MANGLER # # <packet_mangler> 85*a1e26a70SApple OSS Distributionsoptions REMOTE_VIF # # <remote_vif> 86*a1e26a70SApple OSS Distributionsoptions SKYWALK # # <skywalk> 87*a1e26a70SApple OSS Distributionsoptions CONFIG_NEXUS_USER_PIPE # # <config_nexus_user_pipe> 88*a1e26a70SApple OSS Distributionsoptions CONFIG_NEXUS_KERNEL_PIPE # # <config_nexus_kernel_pipe> 89*a1e26a70SApple OSS Distributionsoptions CONFIG_NEXUS_MONITOR # # <config_nexus_monitor> 90*a1e26a70SApple OSS Distributionsoptions CONFIG_NEXUS_FLOWSWITCH # # <config_nexus_flowswitch> 91*a1e26a70SApple OSS Distributionsoptions CONFIG_NEXUS_NETIF # # <config_nexus_netif> 92*a1e26a70SApple OSS Distributionsoptions CONFIG_MBUF_MCACHE # mbufs use mcache # <config_mbuf_mcache> 93*a1e26a70SApple OSS Distributionsoptions KCTL_TEST # kernel control test # <kctl_test> 94*a1e26a70SApple OSS Distributions 95*a1e26a70SApple OSS Distributions# secure_kernel - secure kernel from user programs 96*a1e26a70SApple OSS Distributionsoptions SECURE_KERNEL # <secure_kernel> 97*a1e26a70SApple OSS Distributions 98*a1e26a70SApple OSS Distributions# 99*a1e26a70SApple OSS Distributions# 4.4 general kernel 100*a1e26a70SApple OSS Distributions# 101*a1e26a70SApple OSS Distributionsoptions SOCKETS # socket support # <inet> 102*a1e26a70SApple OSS Distributionsoptions DIAGNOSTIC # diagnostics # <diagnostic> 103*a1e26a70SApple OSS Distributionsoptions PROFILE # kernel profiling # <profile> 104*a1e26a70SApple OSS Distributionsoptions SENDFILE # sendfile # <sendfile> 105*a1e26a70SApple OSS Distributionsoptions NETWORKING # networking layer # <inet> 106*a1e26a70SApple OSS Distributionsoptions CONFIG_FSE # file system events # <config_fse> 107*a1e26a70SApple OSS Distributionsoptions CONFIG_IMAGEBOOT # local image boot # <config_imageboot> 108*a1e26a70SApple OSS Distributionsoptions CONFIG_MBUF_JUMBO # jumbo cluster pool # <config_mbuf_jumbo> 109*a1e26a70SApple OSS Distributionsoptions CONFIG_IMAGEBOOT_IMG4 # authenticate image with AppleImage4 # <config_imageboot_img4> 110*a1e26a70SApple OSS Distributionsoptions CONFIG_IMAGEBOOT_CHUNKLIST # authenticate image with a chunk list # <config_imageboot_chunklist> 111*a1e26a70SApple OSS Distributions 112*a1e26a70SApple OSS Distributionsoptions CONFIG_WORKLOOP_DEBUG # <config_workloop_debug> 113*a1e26a70SApple OSS Distributions 114*a1e26a70SApple OSS Distributions# 115*a1e26a70SApple OSS Distributions# 4.4 filesystems 116*a1e26a70SApple OSS Distributions# 117*a1e26a70SApple OSS Distributionsoptions MOCKFS # Boot from an executable # <mockfs> 118*a1e26a70SApple OSS Distributionsoptions FIFO # fifo support # <fifo> 119*a1e26a70SApple OSS Distributionsoptions FDESC # fdesc_fs support # <fdesc> 120*a1e26a70SApple OSS Distributionsoptions DEVFS # devfs support # <devfs> 121*a1e26a70SApple OSS Distributionsoptions ROUTEFS # routefs support # <routefs> 122*a1e26a70SApple OSS Distributionsoptions NULLFS # nullfs support # <nullfs> 123*a1e26a70SApple OSS Distributionsoptions BINDFS # bindfs support # <bindfs> 124*a1e26a70SApple OSS Distributionsoptions FS_COMPRESSION # fs compression # <fs_compression> 125*a1e26a70SApple OSS Distributionsoptions CONFIG_DEV_KMEM # /dev/kmem device for reading KVA # <config_dev_kmem> 126*a1e26a70SApple OSS Distributions 127*a1e26a70SApple OSS Distributions# 128*a1e26a70SApple OSS Distributions# file system features 129*a1e26a70SApple OSS Distributions# 130*a1e26a70SApple OSS Distributionsoptions QUOTA # file system quotas # <quota> 131*a1e26a70SApple OSS Distributionsoptions NAMEDSTREAMS # named stream vnop support # <namedstreams> 132*a1e26a70SApple OSS Distributionsoptions CONFIG_APPLEDOUBLE # apple double support # <config_appledouble> 133*a1e26a70SApple OSS Distributionsoptions CONFIG_VOLFS # volfs path support (legacy) # <config_volfs> 134*a1e26a70SApple OSS Distributionsoptions CONFIG_IMGSRC_ACCESS # source of imageboot dmg # <config_imgsrc_access> 135*a1e26a70SApple OSS Distributionsoptions CONFIG_TRIGGERS # trigger vnodes # <config_triggers> 136*a1e26a70SApple OSS Distributionsoptions CONFIG_EXT_RESOLVER # e.g. memberd # <config_ext_resolver> 137*a1e26a70SApple OSS Distributionsoptions CONFIG_SEARCHFS # searchfs syscall support # <config_searchfs> 138*a1e26a70SApple OSS Distributionsoptions CONFIG_MNT_SUID # allow suid binaries # <config_mnt_suid> 139*a1e26a70SApple OSS Distributionsoptions CONFIG_MNT_ROOTSNAP # allow rooting from snapshot # <config_mnt_rootsnap> 140*a1e26a70SApple OSS Distributionsoptions CONFIG_ROSV_STARTUP # allow read-only system volume startup # <config_rosv_startup> 141*a1e26a70SApple OSS Distributionsoptions CONFIG_FIRMLINKS # support "firmlinks" # <config_firmlinks> 142*a1e26a70SApple OSS Distributionsoptions CONFIG_MOUNT_VM # mount VM volume on startup # <config_mount_vm> 143*a1e26a70SApple OSS Distributionsoptions CONFIG_MOUNT_PREBOOTRECOVERY # mount Preboot and/or Recovery volume on startup # <config_mount_prebootrecovery> 144*a1e26a70SApple OSS Distributionsoptions CONFIG_DATALESS_FILES # support dataless file materialization # <config_dataless_files> 145*a1e26a70SApple OSS Distributionsoptions CONFIG_BASESYSTEMROOT # mount BaseSystem as initial root filesystem on some kinds of startup # <config_basesystemroot> 146*a1e26a70SApple OSS Distributionsoptions CONFIG_UNION_MOUNTS # support union mounts # <config_union_mounts> 147*a1e26a70SApple OSS Distributionsoptions CONFIG_FILE_LEASES # local file leasing support # <config_file_leases> 148*a1e26a70SApple OSS Distributions 149*a1e26a70SApple OSS Distributions# 150*a1e26a70SApple OSS Distributions# VFS debugging 151*a1e26a70SApple OSS Distributions# 152*a1e26a70SApple OSS Distributionsoptions CONFIG_IOCOUNT_TRACE # enable vnode's iocount tracing # <config_iocount_trace> 153*a1e26a70SApple OSS Distributions 154*a1e26a70SApple OSS Distributions# NFS support 155*a1e26a70SApple OSS Distributions# 156*a1e26a70SApple OSS Distributionsoptions NFSSERVER # Be an NFS server # <nfsserver> 157*a1e26a70SApple OSS Distributionsoptions CONFIG_NETBOOT # network booting # <config_netboot> 158*a1e26a70SApple OSS Distributions 159*a1e26a70SApple OSS Distributions# 160*a1e26a70SApple OSS Distributions# Machine Independent Apple Features 161*a1e26a70SApple OSS Distributions# 162*a1e26a70SApple OSS Distributionsprofile # build a profiling kernel # <profile> 163*a1e26a70SApple OSS Distributions 164*a1e26a70SApple OSS Distributions# 165*a1e26a70SApple OSS Distributions# IPv6 Support 166*a1e26a70SApple OSS Distributions# 167*a1e26a70SApple OSS Distributionsoptions IPSEC # IP security # <ipsec> 168*a1e26a70SApple OSS Distributionsoptions IPSEC_ESP # IP security # <ipsec> 169*a1e26a70SApple OSS Distributions 170*a1e26a70SApple OSS Distributionspseudo-device gif 1 # <gif> 171*a1e26a70SApple OSS Distributionspseudo-device dummy 2 # <dummy> 172*a1e26a70SApple OSS Distributionspseudo-device stf 1 # <stf> 173*a1e26a70SApple OSS Distributions 174*a1e26a70SApple OSS Distributionsoptions CRYPTO # <ipsec,crypto> 175*a1e26a70SApple OSS Distributionsoptions CRYPTO_SHA2 # <crypto_sha2> 176*a1e26a70SApple OSS Distributionsoptions ENCRYPTED_SWAP # <encrypted_swap> 177*a1e26a70SApple OSS Distributions 178*a1e26a70SApple OSS Distributionsoptions CONFIG_IMG4 # <config_img4> 179*a1e26a70SApple OSS Distributions 180*a1e26a70SApple OSS Distributionsoptions ZLIB # inflate/deflate support # <zlib> 181*a1e26a70SApple OSS Distributionsoptions ZLIBC # inflate/deflate support # <zlibc> 182*a1e26a70SApple OSS Distributions 183*a1e26a70SApple OSS Distributionsoptions IF_BRIDGE # <if_bridge> 184*a1e26a70SApple OSS Distributions 185*a1e26a70SApple OSS Distributions# 186*a1e26a70SApple OSS Distributions# configurable kernel event related resources 187*a1e26a70SApple OSS Distributions# 188*a1e26a70SApple OSS Distributionsoptions CONFIG_KN_HASHSIZE=64 # <medium,large,xlarge> 189*a1e26a70SApple OSS Distributionsoptions CONFIG_KN_HASHSIZE=48 # <small,xsmall> 190*a1e26a70SApple OSS Distributionsoptions CONFIG_KN_HASHSIZE=20 # <bsmall> 191*a1e26a70SApple OSS Distributions 192*a1e26a70SApple OSS Distributions# 193*a1e26a70SApple OSS Distributions# configurable vfs related resources 194*a1e26a70SApple OSS Distributions# CONFIG_VNODES - used to pre allocate vnode related resources 195*a1e26a70SApple OSS Distributions# CONFIG_NC_HASH - name cache hash table allocation 196*a1e26a70SApple OSS Distributions# CONFIG_VFS_NAMES - name strings 197*a1e26a70SApple OSS Distributions# 198*a1e26a70SApple OSS Distributions# 263168 magic number for medium CONFIG_VNODES is based on memory 199*a1e26a70SApple OSS Distributions# Number vnodes is (memsize/64k) + 1024 200*a1e26a70SApple OSS Distributions# This is the calculation that is used by launchd in tiger 201*a1e26a70SApple OSS Distributions# we are clipping the max based on 16G 202*a1e26a70SApple OSS Distributions# ie ((16*1024*1024*1024)/(64 *1024)) + 1024 = 263168; 203*a1e26a70SApple OSS Distributions 204*a1e26a70SApple OSS Distributionsoptions CONFIG_VNODES=263168 # <large,xlarge> 205*a1e26a70SApple OSS Distributionsoptions CONFIG_VNODES=263168 # <medium> 206*a1e26a70SApple OSS Distributionsoptions CONFIG_VNODES=10240 # <small> 207*a1e26a70SApple OSS Distributionsoptions CONFIG_VNODES=750 # <bsmall> 208*a1e26a70SApple OSS Distributions 209*a1e26a70SApple OSS Distributionsoptions CONFIG_NC_HASH=5120 # <large,xlarge> 210*a1e26a70SApple OSS Distributionsoptions CONFIG_NC_HASH=4096 # <medium> 211*a1e26a70SApple OSS Distributionsoptions CONFIG_NC_HASH=2048 # <small,xsmall> 212*a1e26a70SApple OSS Distributionsoptions CONFIG_NC_HASH=1024 # <bsmall> 213*a1e26a70SApple OSS Distributions 214*a1e26a70SApple OSS Distributionsoptions CONFIG_VFS_NAMES=5120 # <large,xlarge> 215*a1e26a70SApple OSS Distributionsoptions CONFIG_VFS_NAMES=4096 # <medium> 216*a1e26a70SApple OSS Distributionsoptions CONFIG_VFS_NAMES=3072 # <small,xsmall> 217*a1e26a70SApple OSS Distributionsoptions CONFIG_VFS_NAMES=2048 # <bsmall> 218*a1e26a70SApple OSS Distributions 219*a1e26a70SApple OSS Distributionsoptions CONFIG_MAX_CLUSTERS=8 # <xlarge,large,medium> 220*a1e26a70SApple OSS Distributionsoptions CONFIG_MAX_CLUSTERS=4 # <small,xsmall,bsmall> 221*a1e26a70SApple OSS Distributions 222*a1e26a70SApple OSS Distributions# 223*a1e26a70SApple OSS Distributions# configurable options for minumum number of buffers for kernel memory 224*a1e26a70SApple OSS Distributions# 225*a1e26a70SApple OSS Distributionsoptions CONFIG_MIN_NBUF=256 # <medium,large,xlarge> 226*a1e26a70SApple OSS Distributionsoptions CONFIG_MIN_NBUF=128 # <small> 227*a1e26a70SApple OSS Distributionsoptions CONFIG_MIN_NBUF=80 # <xsmall> 228*a1e26a70SApple OSS Distributionsoptions CONFIG_MIN_NBUF=64 # <bsmall> 229*a1e26a70SApple OSS Distributions 230*a1e26a70SApple OSS Distributionsoptions CONFIG_MIN_NIOBUF=128 # <medium,large,xlarge> 231*a1e26a70SApple OSS Distributionsoptions CONFIG_MIN_NIOBUF=64 # <xsmall,small> 232*a1e26a70SApple OSS Distributionsoptions CONFIG_MIN_NIOBUF=32 # <bsmall> 233*a1e26a70SApple OSS Distributions 234*a1e26a70SApple OSS Distributions# 235*a1e26a70SApple OSS Distributions# set maximum space used for packet buffers 236*a1e26a70SApple OSS Distributions# 237*a1e26a70SApple OSS Distributionsoptions CONFIG_NMBCLUSTERS="((1024 * 1024) / MCLBYTES)" # <large,xlarge> 238*a1e26a70SApple OSS Distributionsoptions CONFIG_NMBCLUSTERS="((1024 * 512) / MCLBYTES)" # <medium> 239*a1e26a70SApple OSS Distributionsoptions CONFIG_NMBCLUSTERS="((1024 * 256) / MCLBYTES)" # <bsmall,xsmall,small> 240*a1e26a70SApple OSS Distributions 241*a1e26a70SApple OSS Distributions# 242*a1e26a70SApple OSS Distributions# Configure size of TCP hash table 243*a1e26a70SApple OSS Distributions# 244*a1e26a70SApple OSS Distributionsoptions CONFIG_TCBHASHSIZE=4096 # <medium,large,xlarge> 245*a1e26a70SApple OSS Distributionsoptions CONFIG_TCBHASHSIZE=128 # <xsmall,small,bsmall> 246*a1e26a70SApple OSS Distributions 247*a1e26a70SApple OSS Distributions# 248*a1e26a70SApple OSS Distributions# configurable async IO options 249*a1e26a70SApple OSS Distributions# CONFIG_AIO_MAX - system wide limit of async IO requests. 250*a1e26a70SApple OSS Distributions# CONFIG_AIO_PROCESS_MAX - process limit of async IO requests. 251*a1e26a70SApple OSS Distributions# CONFIG_AIO_THREAD_COUNT - number of async IO worker threads created. 252*a1e26a70SApple OSS Distributions# 253*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_MAX=360 # <xlarge> 254*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_MAX=180 # <large> 255*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_MAX=90 # <medium> 256*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_MAX=45 # <small> 257*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_MAX=20 # <xsmall> 258*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_MAX=10 # <bsmall> 259*a1e26a70SApple OSS Distributions 260*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_PROCESS_MAX=64 # <xlarge> 261*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_PROCESS_MAX=32 # <large> 262*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_PROCESS_MAX=16 # <medium> 263*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_PROCESS_MAX=12 # <small> 264*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_PROCESS_MAX=8 # <xsmall> 265*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_PROCESS_MAX=4 # <bsmall> 266*a1e26a70SApple OSS Distributions 267*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_THREAD_COUNT=16 # <xlarge> 268*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_THREAD_COUNT=8 # <large> 269*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_THREAD_COUNT=4 # <medium> 270*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_THREAD_COUNT=3 # <small> 271*a1e26a70SApple OSS Distributionsoptions CONFIG_AIO_THREAD_COUNT=2 # <xsmall,bsmall> 272*a1e26a70SApple OSS Distributions 273*a1e26a70SApple OSS Distributionsoptions CONFIG_MAXVIFS=32 # <medium,large,xlarge> 274*a1e26a70SApple OSS Distributionsoptions CONFIG_MAXVIFS=16 # <small,xsmall> 275*a1e26a70SApple OSS Distributionsoptions CONFIG_MAXVIFS=2 # <bsmall> 276*a1e26a70SApple OSS Distributions 277*a1e26a70SApple OSS Distributionsoptions CONFIG_MFCTBLSIZ=256 # <medium,large,xlarge> 278*a1e26a70SApple OSS Distributionsoptions CONFIG_MFCTBLSIZ=128 # <small,xsmall> 279*a1e26a70SApple OSS Distributionsoptions CONFIG_MFCTBLSIZ=16 # <bsmall> 280*a1e26a70SApple OSS Distributions 281*a1e26a70SApple OSS Distributions# 282*a1e26a70SApple OSS Distributions# configurable kernel message buffer size 283*a1e26a70SApple OSS Distributions# 284*a1e26a70SApple OSS Distributionsoptions CONFIG_MSG_BSIZE_REL=16384 # <msgb_small> 285*a1e26a70SApple OSS Distributionsoptions CONFIG_MSG_BSIZE_DEV=131072 # <msgb_small> 286*a1e26a70SApple OSS Distributionsoptions CONFIG_MSG_BSIZE_REL=131072 # <msgb_large> 287*a1e26a70SApple OSS Distributionsoptions CONFIG_MSG_BSIZE_DEV=131072 # <msgb_large> 288*a1e26a70SApple OSS Distributionsoptions CONFIG_MSG_BSIZE=CONFIG_MSG_BSIZE_REL # <!development,debug> 289*a1e26a70SApple OSS Distributionsoptions CONFIG_MSG_BSIZE=CONFIG_MSG_BSIZE_DEV # <development,debug> 290*a1e26a70SApple OSS Distributions 291*a1e26a70SApple OSS Distributions# 292*a1e26a70SApple OSS Distributions# maximum size of the per-process Mach IPC table 293*a1e26a70SApple OSS Distributions# 294*a1e26a70SApple OSS Distributionsoptions CONFIG_IPC_TABLE_ENTRIES_SIZE_MAX=3145728 # 3M == 131072 entries # <bsmall,small,xsmall> 295*a1e26a70SApple OSS Distributionsoptions CONFIG_IPC_TABLE_ENTRIES_SIZE_MAX=7340032 # 7M == 305834 entries # <medium,large,xlarge> 296*a1e26a70SApple OSS Distributionsoptions CONFIG_IPC_TABLE_REQUEST_SIZE_MAX=1048576 # 1M == 65536 requests # <bsmall,small,xsmall> 297*a1e26a70SApple OSS Distributionsoptions CONFIG_IPC_TABLE_REQUEST_SIZE_MAX=2097152 # 2M == 131072 requests # <medium,large,xlarge> 298*a1e26a70SApple OSS Distributions 299*a1e26a70SApple OSS Distributions# 300*a1e26a70SApple OSS Distributions# maximum copyout size for IPC debugging tools 301*a1e26a70SApple OSS Distributions# 302*a1e26a70SApple OSS Distributionsoptions CONFIG_IPC_KERNEL_MAP_SIZE=32 # 32M # <bsmall,small,xsmall> 303*a1e26a70SApple OSS Distributionsoptions CONFIG_IPC_KERNEL_MAP_SIZE=64 # 64M # <medium,large,xlarge> 304*a1e26a70SApple OSS Distributions 305*a1e26a70SApple OSS Distributions# 306*a1e26a70SApple OSS Distributions# configurable kernel - use these options to strip strings from panic 307*a1e26a70SApple OSS Distributions# and printf calls. 308*a1e26a70SApple OSS Distributions# no_printf_str - saves around 45K of kernel footprint. 309*a1e26a70SApple OSS Distributions# 310*a1e26a70SApple OSS Distributionsoptions CONFIG_NO_PRINTF_STRINGS # <no_printf_str> 311*a1e26a70SApple OSS Distributionsoptions CONFIG_NO_KPRINTF_STRINGS # <no_kprintf_str> 312*a1e26a70SApple OSS Distributions 313*a1e26a70SApple OSS Distributions# support vsprintf (deprecated in favor of vsnprintf) 314*a1e26a70SApple OSS Distributionsoptions CONFIG_VSPRINTF # <vsprintf> 315*a1e26a70SApple OSS Distributions 316*a1e26a70SApple OSS Distributions# 317*a1e26a70SApple OSS Distributions# configurable kernel - general switch to say we are building for an 318*a1e26a70SApple OSS Distributions# embedded device 319*a1e26a70SApple OSS Distributions# 320*a1e26a70SApple OSS Distributionsoptions CONFIG_EMBEDDED # <config_embedded> 321*a1e26a70SApple OSS Distributions 322*a1e26a70SApple OSS Distributions 323*a1e26a70SApple OSS Distributions# Compile XNU with SPTM support. This option should be used mutually exclusively 324*a1e26a70SApple OSS Distributions# with the config_pmap_ppl option 325*a1e26a70SApple OSS Distributionsoptions CONFIG_SPTM # <config_sptm> 326*a1e26a70SApple OSS Distributions 327*a1e26a70SApple OSS Distributions 328*a1e26a70SApple OSS Distributions# Enable support for commmunication with exclaves. Requires SPTM support. 329*a1e26a70SApple OSS Distributionsoptions CONFIG_EXCLAVES # <config_exclaves> 330*a1e26a70SApple OSS Distributions 331*a1e26a70SApple OSS Distributions# Compile XNU with PPL support. 332*a1e26a70SApple OSS Distributionsoptions CONFIG_PMAP_PPL # <config_pmap_ppl> 333*a1e26a70SApple OSS Distributions 334*a1e26a70SApple OSS Distributionsoptions NOS_ARM_ASM # <nos_arm_asm> 335*a1e26a70SApple OSS Distributionsoptions NOS_ARM_PMAP # <nos_arm_pmap> 336*a1e26a70SApple OSS Distributions 337*a1e26a70SApple OSS Distributions# support dynamic signing of code 338*a1e26a70SApple OSS Distributions# 339*a1e26a70SApple OSS Distributionsoptions CONFIG_DYNAMIC_CODE_SIGNING # <dynamic_codesigning> 340*a1e26a70SApple OSS Distributions 341*a1e26a70SApple OSS Distributions# enforce library validation on all processes. 342*a1e26a70SApple OSS Distributions# 343*a1e26a70SApple OSS Distributionsoptions CONFIG_ENFORCE_LIBRARY_VALIDATION # <config_library_validation> 344*a1e26a70SApple OSS Distributions 345*a1e26a70SApple OSS Distributions# support loading a second static trust cache 346*a1e26a70SApple OSS Distributions# 347*a1e26a70SApple OSS Distributionsoptions CONFIG_SECOND_STATIC_TRUST_CACHE # <second_static_trust_cache> 348*a1e26a70SApple OSS Distributions 349*a1e26a70SApple OSS Distributions# support supplemental signatures 350*a1e26a70SApple OSS Distributions# 351*a1e26a70SApple OSS Distributionsoptions CONFIG_SUPPLEMENTAL_SIGNATURES # <config_supplemental_signatures> 352*a1e26a70SApple OSS Distributions 353*a1e26a70SApple OSS Distributions# 354*a1e26a70SApple OSS Distributions# code decryption... used on embedded for app protection, DSMOS on desktop 355*a1e26a70SApple OSS Distributions# 356*a1e26a70SApple OSS Distributionsoptions CONFIG_CODE_DECRYPTION # <config_code_decryption> 357*a1e26a70SApple OSS Distributions 358*a1e26a70SApple OSS Distributions# 359*a1e26a70SApple OSS Distributions# User Content Protection, used on embedded 360*a1e26a70SApple OSS Distributions# 361*a1e26a70SApple OSS Distributionsoptions CONFIG_PROTECT # <config_protect> 362*a1e26a70SApple OSS Distributions 363*a1e26a70SApple OSS Distributions#allow write-protection of key page 364*a1e26a70SApple OSS Distributionsoptions CONFIG_KEYPAGE_WP # <config_keypage_wp> 365*a1e26a70SApple OSS Distributions 366*a1e26a70SApple OSS Distributions# 367*a1e26a70SApple OSS Distributions# allow vm_pageout_scan to dynamically adjust its priority based on priorities of waiters 368*a1e26a70SApple OSS Distributions# 369*a1e26a70SApple OSS Distributionsoptions CONFIG_VPS_DYNAMIC_PRIO # <vps_dynamic_prio> 370*a1e26a70SApple OSS Distributions 371*a1e26a70SApple OSS Distributions# 372*a1e26a70SApple OSS Distributions# enable per-process memory priority tracking 373*a1e26a70SApple OSS Distributions# 374*a1e26a70SApple OSS Distributionsoptions CONFIG_MEMORYSTATUS # <memorystatus> 375*a1e26a70SApple OSS Distributions 376*a1e26a70SApple OSS Distributionsoptions CONFIG_DEFERRED_RECLAIM # <config_deferred_reclaim> 377*a1e26a70SApple OSS Distributions 378*a1e26a70SApple OSS Distributions# 379*a1e26a70SApple OSS Distributions# enable jetsam - used on embedded 380*a1e26a70SApple OSS Distributions# 381*a1e26a70SApple OSS Distributionsoptions CONFIG_JETSAM # <jetsam> 382*a1e26a70SApple OSS Distributions 383*a1e26a70SApple OSS Distributions# 384*a1e26a70SApple OSS Distributions# enable new wait queue implementation stats / debugging 385*a1e26a70SApple OSS Distributions# 386*a1e26a70SApple OSS Distributionsoptions CONFIG_WAITQ_STATS # <config_waitq_stats> 387*a1e26a70SApple OSS Distributions 388*a1e26a70SApple OSS Distributions# 389*a1e26a70SApple OSS Distributions# enable freezing of suspended processes - used on embedded 390*a1e26a70SApple OSS Distributions# 391*a1e26a70SApple OSS Distributionsoptions CONFIG_FREEZE # <freeze> 392*a1e26a70SApple OSS Distributions 393*a1e26a70SApple OSS Distributionsoptions CHECK_CS_VALIDATION_BITMAP # <config_cs_validation_bitmap> 394*a1e26a70SApple OSS Distributions 395*a1e26a70SApple OSS Distributions# 396*a1e26a70SApple OSS Distributions# enable physical writes accounting 397*a1e26a70SApple OSS Distributions# 398*a1e26a70SApple OSS Distributionsoptions CONFIG_PHYS_WRITE_ACCT # <phys_write_acct> 399*a1e26a70SApple OSS Distributions 400*a1e26a70SApple OSS Distributions# 401*a1e26a70SApple OSS Distributions# enable detection of file cache thrashing - used on platforms with 402*a1e26a70SApple OSS Distributions# dynamic VM compression enabled 403*a1e26a70SApple OSS Distributions# 404*a1e26a70SApple OSS Distributionsoptions CONFIG_PHANTOM_CACHE # <phantom_cache> 405*a1e26a70SApple OSS Distributions 406*a1e26a70SApple OSS Distributions# 407*a1e26a70SApple OSS Distributions# enable detection of anonymous pages staying unmodified after first use 408*a1e26a70SApple OSS Distributions# - used on platforms with dynamic VM compression enabled 409*a1e26a70SApple OSS Distributions# 410*a1e26a70SApple OSS Distributionsoptions CONFIG_TRACK_UNMODIFIED_ANON_PAGES # <track_unmodified_anon_pages> 411*a1e26a70SApple OSS Distributions 412*a1e26a70SApple OSS Distributions# 413*a1e26a70SApple OSS Distributions# memory pressure event support 414*a1e26a70SApple OSS Distributions# 415*a1e26a70SApple OSS Distributionsoptions VM_PRESSURE_EVENTS # <vm_pressure_events> 416*a1e26a70SApple OSS Distributions 417*a1e26a70SApple OSS Distributionsoptions CONFIG_SECLUDED_MEMORY # <config_secluded_memory> 418*a1e26a70SApple OSS Distributions 419*a1e26a70SApple OSS Distributions# 420*a1e26a70SApple OSS Distributions# Ledger features 421*a1e26a70SApple OSS Distributions# 422*a1e26a70SApple OSS Distributionsoptions CONFIG_LEDGER_INTERVAL_MAX # <config_ledger_interval_max> 423*a1e26a70SApple OSS Distributions 424*a1e26a70SApple OSS Distributions# 425*a1e26a70SApple OSS Distributions# I/O Scheduling 426*a1e26a70SApple OSS Distributions# 427*a1e26a70SApple OSS Distributionsoptions CONFIG_IOSCHED # <config_iosched> 428*a1e26a70SApple OSS Distributions 429*a1e26a70SApple OSS Distributions# 430*a1e26a70SApple OSS Distributions# Accounting for I/O usage 431*a1e26a70SApple OSS Distributions# 432*a1e26a70SApple OSS Distributionsoptions CONFIG_IO_ACCOUNTING # <config_io_accounting> 433*a1e26a70SApple OSS Distributions 434*a1e26a70SApple OSS Distributions# 435*a1e26a70SApple OSS Distributions# Enable inheritance of importance through specially marked mach ports and for file locks 436*a1e26a70SApple OSS Distributions# For now debug is enabled wherever inheritance is 437*a1e26a70SApple OSS Distributions# 438*a1e26a70SApple OSS Distributionsoptions IMPORTANCE_INHERITANCE # <importance_inheritance> 439*a1e26a70SApple OSS Distributionsoptions IMPORTANCE_TRACE # <importance_trace> 440*a1e26a70SApple OSS Distributionsoptions IMPORTANCE_DEBUG # <importance_debug> 441*a1e26a70SApple OSS Distributions 442*a1e26a70SApple OSS Distributionsoptions CONFIG_TELEMETRY # <config_telemetry> 443*a1e26a70SApple OSS Distributions 444*a1e26a70SApple OSS Distributionsoptions CONFIG_PROC_UUID_POLICY # <config_proc_uuid_policy> 445*a1e26a70SApple OSS Distributions 446*a1e26a70SApple OSS Distributions# 447*a1e26a70SApple OSS Distributions# ECC data logging 448*a1e26a70SApple OSS Distributions# 449*a1e26a70SApple OSS Distributionsoptions CONFIG_ECC_LOGGING # <config_ecc_logging> 450*a1e26a70SApple OSS Distributions 451*a1e26a70SApple OSS Distributions# 452*a1e26a70SApple OSS Distributions# Application core dumps 453*a1e26a70SApple OSS Distributions# 454*a1e26a70SApple OSS Distributionsoptions CONFIG_COREDUMP # <config_coredump> 455*a1e26a70SApple OSS Distributions 456*a1e26a70SApple OSS Distributions# 457*a1e26a70SApple OSS Distributions# Vnode guards 458*a1e26a70SApple OSS Distributions# 459*a1e26a70SApple OSS Distributionsoptions CONFIG_VNGUARD # <config_vnguard> 460*a1e26a70SApple OSS Distributions 461*a1e26a70SApple OSS Distributions# 462*a1e26a70SApple OSS Distributions# Paravirtualization 463*a1e26a70SApple OSS Distributions# 464*a1e26a70SApple OSS Distributionsoptions CONFIG_PV_TICKET # <config_pv_ticket> 465*a1e26a70SApple OSS Distributions 466*a1e26a70SApple OSS Distributions# 467*a1e26a70SApple OSS Distributions# Enable extended VM address space and user heap segregation 468*a1e26a70SApple OSS Distributions# 469*a1e26a70SApple OSS Distributionsoptions CONFIG_MAP_RANGES # <config_map_ranges> 470*a1e26a70SApple OSS Distributions 471*a1e26a70SApple OSS Distributions# 472*a1e26a70SApple OSS Distributions# Ethernet (ARP) 473*a1e26a70SApple OSS Distributions# 474*a1e26a70SApple OSS Distributionspseudo-device ether # <networking,inet> 475*a1e26a70SApple OSS Distributions# 476*a1e26a70SApple OSS Distributions# Network loopback device 477*a1e26a70SApple OSS Distributions# 478*a1e26a70SApple OSS Distributionspseudo-device loop # <networking,inet> 479*a1e26a70SApple OSS Distributions# 480*a1e26a70SApple OSS Distributions# UCB pseudo terminal service 481*a1e26a70SApple OSS Distributions# 482*a1e26a70SApple OSS Distributionspseudo-device pty 512 init pty_init # <xlarge> 483*a1e26a70SApple OSS Distributionspseudo-device pty 256 init pty_init # <large> 484*a1e26a70SApple OSS Distributionspseudo-device pty 128 init pty_init # <medium> 485*a1e26a70SApple OSS Distributionspseudo-device pty 48 init pty_init # <small> 486*a1e26a70SApple OSS Distributionspseudo-device pty 16 init pty_init # <xsmall> 487*a1e26a70SApple OSS Distributionspseudo-device pty 8 init pty_init # <bsmall> 488*a1e26a70SApple OSS Distributions# 489*a1e26a70SApple OSS Distributions# Cloning pseudo terminal service 490*a1e26a70SApple OSS Distributions# 491*a1e26a70SApple OSS Distributionspseudo-device ptmx 1 init ptmx_init 492*a1e26a70SApple OSS Distributions 493*a1e26a70SApple OSS Distributions# 494*a1e26a70SApple OSS Distributions# memory device 495*a1e26a70SApple OSS Distributionspseudo-device mdevdevice 1 init mdevinit 496*a1e26a70SApple OSS Distributions 497*a1e26a70SApple OSS Distributions# 498*a1e26a70SApple OSS Distributions# 499*a1e26a70SApple OSS Distributions# packet filter device 500*a1e26a70SApple OSS Distributions# 501*a1e26a70SApple OSS Distributionspseudo-device bpfilter 4 init bpf_init # <networking,inet> 502*a1e26a70SApple OSS Distributions 503*a1e26a70SApple OSS Distributions# 504*a1e26a70SApple OSS Distributions# fsevents device 505*a1e26a70SApple OSS Distributionspseudo-device fsevents 1 init fsevents_init # <config_fse> 506*a1e26a70SApple OSS Distributions 507*a1e26a70SApple OSS Distributionspseudo-device random 1 init random_init 508*a1e26a70SApple OSS Distributionspseudo-device dtrace 1 init dtrace_init # <config_dtrace> 509*a1e26a70SApple OSS Distributionspseudo-device helper 1 init helper_init # <config_dtrace> 510*a1e26a70SApple OSS Distributionspseudo-device lockstat 1 init lockstat_init # <config_dtrace> 511*a1e26a70SApple OSS Distributionspseudo-device lockprof 1 init lockprof_init # <config_dtrace> 512*a1e26a70SApple OSS Distributionspseudo-device sdt 1 init sdt_init # <config_dtrace> 513*a1e26a70SApple OSS Distributionspseudo-device systrace 1 init systrace_init # <config_dtrace> 514*a1e26a70SApple OSS Distributionspseudo-device fbt 1 init fbt_init # <config_dtrace> 515*a1e26a70SApple OSS Distributionspseudo-device profile_prvd 1 init profile_init # <config_dtrace> 516*a1e26a70SApple OSS Distributions 517*a1e26a70SApple OSS Distributions# monotonic devices 518*a1e26a70SApple OSS Distributionspseudo-device monotonic 1 init mt_dev_init # <config_cpu_counters> 519*a1e26a70SApple OSS Distributions 520*a1e26a70SApple OSS Distributions# 521*a1e26a70SApple OSS Distributions# IOKit configuration options 522*a1e26a70SApple OSS Distributions# 523*a1e26a70SApple OSS Distributions 524*a1e26a70SApple OSS Distributionsoptions HIBERNATION # system hibernation # <hibernation> 525*a1e26a70SApple OSS Distributionsoptions IOKITCPP # C++ implementation # <iokitcpp> 526*a1e26a70SApple OSS Distributionsoptions IOKITSTATS # IOKit statistics # <iokitstats> 527*a1e26a70SApple OSS Distributionsoptions IOTRACKING # IOKit tracking # <iotracking> 528*a1e26a70SApple OSS Distributionsoptions CONFIG_SLEEP # # <config_sleep> 529*a1e26a70SApple OSS Distributionsoptions CONFIG_MAX_THREADS=500 # IOConfigThread threads 530*a1e26a70SApple OSS Distributionsoptions NO_KEXTD # <no_kextd> 531*a1e26a70SApple OSS Distributionsoptions NO_KERNEL_HID # <no_kernel_hid> 532*a1e26a70SApple OSS Distributions 533*a1e26a70SApple OSS Distributions# 534*a1e26a70SApple OSS Distributions# Libkern configuration options 535*a1e26a70SApple OSS Distributions# 536*a1e26a70SApple OSS Distributions 537*a1e26a70SApple OSS Distributionsoptions LIBKERNCPP # C++ implementation # <libkerncpp> 538*a1e26a70SApple OSS Distributionsoptions CONFIG_BLOCKS # Blocks runtime # <config_blocks> 539*a1e26a70SApple OSS Distributionsoptions CONFIG_KXLD # kxld/runtime linking of kexts # <config_kxld> 540*a1e26a70SApple OSS Distributionsoptions CONFIG_KEC_FIPS # Kernel External Components for FIPS compliance (KEC_FIPS) # <config_kec_fips> 541*a1e26a70SApple OSS Distributions 542*a1e26a70SApple OSS Distributions# Note that when adding this config option to an architecture, one MUST 543*a1e26a70SApple OSS Distributions# add the architecture to the preprocessor test at the beginning of 544*a1e26a70SApple OSS Distributions# libkern/kmod/cplus_{start.c,stop.c}. 545*a1e26a70SApple OSS Distributionsoptions CONFIG_STATIC_CPPINIT # Static library initializes kext cpp runtime # <config_static_cppinit> 546*a1e26a70SApple OSS Distributions 547*a1e26a70SApple OSS Distributions# 548*a1e26a70SApple OSS Distributions# libsa configuration options 549*a1e26a70SApple OSS Distributions# 550*a1e26a70SApple OSS Distributions 551*a1e26a70SApple OSS Distributions# CONFIG_KEXT_BASEMENT - alloc post boot loaded kexts after prelinked kexts 552*a1e26a70SApple OSS Distributions# 553*a1e26a70SApple OSS Distributionsoptions CONFIG_KEXT_BASEMENT # # <config_kext_basement> 554*a1e26a70SApple OSS Distributions 555*a1e26a70SApple OSS Distributions# 556*a1e26a70SApple OSS Distributions# Persona Management 557*a1e26a70SApple OSS Distributions# 558*a1e26a70SApple OSS Distributionsoptions CONFIG_PERSONAS # Persona management # <config_personas> 559*a1e26a70SApple OSS Distributionsoptions PERSONA_DEBUG # Persona debugging # <persona_debug> 560*a1e26a70SApple OSS Distributions 561*a1e26a70SApple OSS Distributions# 562*a1e26a70SApple OSS Distributions# security configuration options 563*a1e26a70SApple OSS Distributions# 564*a1e26a70SApple OSS Distributions 565*a1e26a70SApple OSS Distributionsoptions CONFIG_MACF # Mandatory Access Control Framework # <config_macf> 566*a1e26a70SApple OSS Distributionsoptions CONFIG_MACF_SOCKET_SUBSET # MAC socket subest (no labels) # <config_macf> 567*a1e26a70SApple OSS Distributions#options CONFIG_MACF_DEBUG # debug # <config_macf> 568*a1e26a70SApple OSS Distributions 569*a1e26a70SApple OSS Distributionsoptions CONFIG_AUDIT # Kernel auditing # <config_audit> 570*a1e26a70SApple OSS Distributions 571*a1e26a70SApple OSS Distributionsoptions CONFIG_ARCADE # Arcade validation support # <config_arcade> 572*a1e26a70SApple OSS Distributions 573*a1e26a70SApple OSS Distributionsoptions CONFIG_SETUID # setuid/setgid support # <config_setuid> 574*a1e26a70SApple OSS Distributions 575*a1e26a70SApple OSS Distributionsoptions CONFIG_SECURE_BSD_ROOT # secure BSD root # <config_secure_bsd_root> 576*a1e26a70SApple OSS Distributions 577*a1e26a70SApple OSS Distributionsoptions CONFIG_KAS_INFO # kas_info support # <config_kas_info> 578*a1e26a70SApple OSS Distributions 579*a1e26a70SApple OSS Distributionsoptions CONFIG_PROC_RESOURCE_LIMITS # Per process limits for resources like file descriptors and mach ports # <config_proc_resource_limits> 580*a1e26a70SApple OSS Distributions 581*a1e26a70SApple OSS Distributions# 582*a1e26a70SApple OSS Distributions# MACH configuration options. 583*a1e26a70SApple OSS Distributions# 584*a1e26a70SApple OSS Distributions 585*a1e26a70SApple OSS Distributions# 586*a1e26a70SApple OSS Distributions# This defines configuration options that are normally used only during 587*a1e26a70SApple OSS Distributions# kernel code development and debugging. They add run-time error checks or 588*a1e26a70SApple OSS Distributions# statistics gathering, which will slow down the system 589*a1e26a70SApple OSS Distributions# 590*a1e26a70SApple OSS Distributions########################################################## 591*a1e26a70SApple OSS Distributions# 592*a1e26a70SApple OSS Distributions# MACH_ASSERT controls the assert() and ASSERT() macros, used to verify the 593*a1e26a70SApple OSS Distributions# consistency of various algorithms in the kernel. The performance impact 594*a1e26a70SApple OSS Distributions# of this option is significant. 595*a1e26a70SApple OSS Distributions# 596*a1e26a70SApple OSS Distributionsoptions MACH_ASSERT # # <mach_assert> 597*a1e26a70SApple OSS Distributionsoptions MACH_VM_DEBUG # # <debug> 598*a1e26a70SApple OSS Distributionsoptions CONFIG_ZLEAKS # Live zone leak debugging # <zleaks> 599*a1e26a70SApple OSS Distributionsoptions CONFIG_VOUCHER_DEPRECATED # Enable deprecated voucher managers # <config_voucher_deprecated> 600*a1e26a70SApple OSS Distributions 601*a1e26a70SApple OSS Distributions# 602*a1e26a70SApple OSS Distributions# CONFIG_DEBUGGER_FOR_ZONE_INFO restricts zone info so that it is only 603*a1e26a70SApple OSS Distributions# available when the kernel is being debugged. 604*a1e26a70SApple OSS Distributions# 605*a1e26a70SApple OSS Distributionsoptions CONFIG_DEBUGGER_FOR_ZONE_INFO # <debugger_for_zone_info> 606*a1e26a70SApple OSS Distributions# 607*a1e26a70SApple OSS Distributions# MACH_LDEBUG controls the internal consistency checks and 608*a1e26a70SApple OSS Distributions# data gathering in the locking package. This also enables a debug-only 609*a1e26a70SApple OSS Distributions# version of simple-locks on uniprocessor machines. The code size and 610*a1e26a70SApple OSS Distributions# performance impact of this option is significant. 611*a1e26a70SApple OSS Distributions# 612*a1e26a70SApple OSS Distributionsoptions MACH_LDEBUG # # <debug> 613*a1e26a70SApple OSS Distributions 614*a1e26a70SApple OSS Distributions# 615*a1e26a70SApple OSS Distributions# configuration option for full, partial, or no kernel debug event tracing 616*a1e26a70SApple OSS Distributions# 617*a1e26a70SApple OSS Distributionsoptions KDEBUG # kernel tracing # <kdebug> 618*a1e26a70SApple OSS Distributionsoptions IST_KDEBUG # limited tracing # <ist_kdebug> 619*a1e26a70SApple OSS Distributionsoptions NO_KDEBUG # no kernel tracing # <no_kdebug> 620*a1e26a70SApple OSS Distributions 621*a1e26a70SApple OSS Distributions# 622*a1e26a70SApple OSS Distributions# CONFIG_DTRACE enables code needed to support DTrace. Currently this is 623*a1e26a70SApple OSS Distributions# only used for delivery of traps/interrupts to DTrace. 624*a1e26a70SApple OSS Distributions# 625*a1e26a70SApple OSS Distributionsoptions CONFIG_DTRACE # # <config_dtrace> 626*a1e26a70SApple OSS Distributions 627*a1e26a70SApple OSS Distributionsoptions LOCK_STATS # # <lock_stats> 628*a1e26a70SApple OSS Distributions 629*a1e26a70SApple OSS Distributions# kernel performance tracing 630*a1e26a70SApple OSS Distributionsoptions KPERF # <kperf> 631*a1e26a70SApple OSS Distributions 632*a1e26a70SApple OSS Distributionsoptions CONFIG_CPU_COUNTERS # <config_cpu_counters> 633*a1e26a70SApple OSS Distributions 634*a1e26a70SApple OSS Distributionsoptions CONFIG_PERVASIVE_CPI # <config_pervasive_cpi> 635*a1e26a70SApple OSS Distributionsoptions CONFIG_PERVASIVE_ENERGY # <config_pervasive_energy> 636*a1e26a70SApple OSS Distributions 637*a1e26a70SApple OSS Distributionsoptions CONFIG_IOTRACE # Physical IO tracing # <config_iotrace> 638*a1e26a70SApple OSS Distributions 639*a1e26a70SApple OSS Distributionsoptions PGO # <pgo> 640*a1e26a70SApple OSS Distributions 641*a1e26a70SApple OSS Distributions# DEVELOPMENT define for development builds 642*a1e26a70SApple OSS Distributionsoptions DEVELOPMENT # dev kernel # <development> 643*a1e26a70SApple OSS Distributions 644*a1e26a70SApple OSS Distributions# DEBUG kernel 645*a1e26a70SApple OSS Distributionsoptions DEBUG # general debugging code # <debug> 646*a1e26a70SApple OSS Distributions 647*a1e26a70SApple OSS Distributionsoptions MACH_BSD # BSD subsystem on top of Mach # <mach_bsd> 648*a1e26a70SApple OSS Distributionsoptions IOKIT # # <iokit> 649*a1e26a70SApple OSS Distributions 650*a1e26a70SApple OSS Distributions# 651*a1e26a70SApple OSS Distributions# configurable kernel related resources (CONFIG_THREAD_MAX needs to stay in 652*a1e26a70SApple OSS Distributions# sync with bsd/conf/MASTER until we fix the config system... todo XXX 653*a1e26a70SApple OSS Distributions# 654*a1e26a70SApple OSS Distributionsoptions CONFIG_THREAD_MAX=2560 # <medium,large,xlarge> 655*a1e26a70SApple OSS Distributionsoptions CONFIG_THREAD_MAX=1536 # <small,xsmall> 656*a1e26a70SApple OSS Distributionsoptions CONFIG_THREAD_MAX=1024 # <bsmall> 657*a1e26a70SApple OSS Distributions 658*a1e26a70SApple OSS Distributionsoptions CONFIG_TASK_MAX=1024 # <medium,large,xlarge> 659*a1e26a70SApple OSS Distributionsoptions CONFIG_TASK_MAX=768 # <small,> 660*a1e26a70SApple OSS Distributionsoptions CONFIG_TASK_MAX=512 # <xsmall,bsmall> 661*a1e26a70SApple OSS Distributions 662*a1e26a70SApple OSS Distributions# 663*a1e26a70SApple OSS Distributions# Minimum zone map size: 115 MB 664*a1e26a70SApple OSS Distributions# 665*a1e26a70SApple OSS Distributionsoptions CONFIG_ZONE_MAP_MIN=120586240 # <xsmall,bsmall,small,medium,large,xlarge> 666*a1e26a70SApple OSS Distributions 667*a1e26a70SApple OSS Distributions# vc_progress_white - make the progress gear white instead of black 668*a1e26a70SApple OSS Distributionsoptions CONFIG_VC_PROGRESS_WHITE # <vc_progress_white> 669*a1e26a70SApple OSS Distributions 670*a1e26a70SApple OSS Distributions# 671*a1e26a70SApple OSS Distributions# Timeshare scheduler implementations 672*a1e26a70SApple OSS Distributions# 673*a1e26a70SApple OSS Distributionsoptions CONFIG_SCHED_TIMESHARE_CORE # <config_sched_timeshare_core> 674*a1e26a70SApple OSS Distributionsoptions CONFIG_CLUTCH # <config_clutch> 675*a1e26a70SApple OSS Distributionsoptions CONFIG_SCHED_AUTO_JOIN # <config_sched_auto_join> 676*a1e26a70SApple OSS Distributionsoptions CONFIG_SCHED_RT_ALLOW # <config_sched_rt_allow> 677*a1e26a70SApple OSS Distributions 678*a1e26a70SApple OSS Distributionsoptions CONFIG_SCHED_IDLE_IN_PLACE # <config_sched_idle_in_place> 679*a1e26a70SApple OSS Distributionsoptions CONFIG_SCHED_SFI # <config_sched_sfi> 680*a1e26a70SApple OSS Distributionsoptions CONFIG_PROB_GZALLOC # <pgzalloc> 681*a1e26a70SApple OSS Distributionsoptions CONFIG_SCHED_DEFERRED_AST # <config_sched_deferred_ast> 682*a1e26a70SApple OSS Distributions 683*a1e26a70SApple OSS Distributionsoptions CONFIG_PREADOPT_TG # <config_preadopt_tg> 684*a1e26a70SApple OSS Distributionsoptions CONFIG_PREADOPT_TG_DEBUG # <config_preadopt_tg_debug> 685*a1e26a70SApple OSS Distributions 686*a1e26a70SApple OSS Distributionsoptions CONFIG_SCHED_SMT # <config_sched_smt> 687*a1e26a70SApple OSS Distributions 688*a1e26a70SApple OSS Distributions# This is overridden by the board configuration's HAS_FAST_CNTVCT. 689*a1e26a70SApple OSS Distributionsoptions CONFIG_SKIP_PRECISE_USER_KERNEL_TIME # <config_skip_precise_user_kernel_time> 690*a1e26a70SApple OSS Distributions 691*a1e26a70SApple OSS Distributions# 692*a1e26a70SApple OSS Distributions# Switch to disable cpu, wakeup and high memory watermark monitors 693*a1e26a70SApple OSS Distributions# 694*a1e26a70SApple OSS Distributionsoptions CONFIG_NOMONITORS # <config_nomonitors> 695*a1e26a70SApple OSS Distributions 696*a1e26a70SApple OSS Distributionsoptions MACH_KDP # KDP # <mach_kdp> 697*a1e26a70SApple OSS Distributionsoptions CONFIG_SERIAL_KDP # KDP over serial # <config_serial_kdp> 698*a1e26a70SApple OSS Distributionsoptions CONFIG_KDP_INTERACTIVE_DEBUGGING # <kdp_interactive_debugging> 699*a1e26a70SApple OSS Distributionsoptions CONFIG_KDP_COREDUMP_ENCRYPTION # Support for encrypting kernel coredumps # <config_kdp_coredump_encryption> 700*a1e26a70SApple OSS Distributions 701*a1e26a70SApple OSS Distributionsoptions CONFIG_TASKWATCH 702*a1e26a70SApple OSS Distributionsoptions CONFIG_USER_NOTIFICATION # <config_user_notification> 703*a1e26a70SApple OSS Distributions# 704*a1e26a70SApple OSS Distributions# Kernel Power On Self Tests 705*a1e26a70SApple OSS Distributions# 706*a1e26a70SApple OSS Distributionsoptions CONFIG_XNUPOST # <config_xnupost> 707*a1e26a70SApple OSS Distributions 708*a1e26a70SApple OSS Distributions# 709*a1e26a70SApple OSS Distributions# Kernel proc reference instrumentation 710*a1e26a70SApple OSS Distributions# 711*a1e26a70SApple OSS Distributionsoptions PROC_REF_DEBUG # <proc_ref_debug> 712*a1e26a70SApple OSS Distributions 713*a1e26a70SApple OSS Distributions# 714*a1e26a70SApple OSS Distributions# Kernel Voucher Attr Manager for Activity Trace 715*a1e26a70SApple OSS Distributions# 716*a1e26a70SApple OSS Distributionsoptions CONFIG_ATM # <config_atm> 717*a1e26a70SApple OSS Distributions 718*a1e26a70SApple OSS Distributions# Group related tasks together into coalitions 719*a1e26a70SApple OSS Distributionsoptions CONFIG_COALITIONS # <config_coalitions> 720*a1e26a70SApple OSS Distributions 721*a1e26a70SApple OSS Distributions# Enable support for sysdiagnose notifications 722*a1e26a70SApple OSS Distributionsoptions CONFIG_SYSDIAGNOSE # <config_sysdiagnose> 723*a1e26a70SApple OSS Distributions 724*a1e26a70SApple OSS Distributions# Configurable Security Restrictions 725*a1e26a70SApple OSS Distributionsoptions CONFIG_CSR # <config_csr> 726*a1e26a70SApple OSS Distributionsoptions CONFIG_CSR_FROM_DT # <config_csr_from_dt> 727*a1e26a70SApple OSS Distributions 728*a1e26a70SApple OSS Distributions# Enable collection of IO Compression statistics 729*a1e26a70SApple OSS Distributionsoptions CONFIG_IO_COMPRESSION_STATS # <config_io_compression_stats> 730*a1e26a70SApple OSS Distributions 731*a1e26a70SApple OSS Distributions# 732*a1e26a70SApple OSS Distributions# Console options 733*a1e26a70SApple OSS Distributions# 734*a1e26a70SApple OSS Distributionsoptions SERIAL_CONSOLE # bi-directional serial over UART 735*a1e26a70SApple OSS Distributionsoptions VIDEO_CONSOLE # uni-directional output over framebuffer 736*a1e26a70SApple OSS Distributions 737*a1e26a70SApple OSS Distributions# 738*a1e26a70SApple OSS Distributions# Syscall options 739*a1e26a70SApple OSS Distributions# 740*a1e26a70SApple OSS Distributionsoptions CONFIG_REQUIRES_U32_MUNGING # incoming U32 argument structures must be munged to match U64 # <config_requires_u32_munging> 741*a1e26a70SApple OSS Distributions 742*a1e26a70SApple OSS Distributions# 743*a1e26a70SApple OSS Distributions# copyout() instrumentation 744*a1e26a70SApple OSS Distributions# 745*a1e26a70SApple OSS Distributionsoptions COPYOUT_SHIM # Shim for copyout memory analysis via kext #<copyout_shim> 746*a1e26a70SApple OSS Distributions 747*a1e26a70SApple OSS Distributions# 748*a1e26a70SApple OSS Distributions# Enable hardware correlation of mach absolute time 749*a1e26a70SApple OSS Distributions# across intel/arm boundary 750*a1e26a70SApple OSS Distributionsoptions CONFIG_MACH_BRIDGE_SEND_TIME # # <config_mach_bridge_send_time> 751*a1e26a70SApple OSS Distributionsoptions CONFIG_MACH_BRIDGE_RECV_TIME # # <config_mach_bridge_recv_time> 752*a1e26a70SApple OSS Distributions 753*a1e26a70SApple OSS Distributionsoptions CONFIG_QUIESCE_COUNTER # Support for _COMM_PAGE_CPU_QUIESCENT_COUNTER # <config_quiesce_counter> 754*a1e26a70SApple OSS Distributionsoptions CONFIG_ARM_PFZ # Support for PFZ on ARM # <config_arm_pfz> 755*a1e26a70SApple OSS Distributions 756*a1e26a70SApple OSS Distributions# 757*a1e26a70SApple OSS Distributions# Sanitizers 758*a1e26a70SApple OSS Distributions# 759*a1e26a70SApple OSS Distributionsoptions CONFIG_KASAN # <config_kasan> 760*a1e26a70SApple OSS Distributionsoptions CONFIG_UBSAN # <config_ubsan> 761*a1e26a70SApple OSS Distributions 762*a1e26a70SApple OSS Distributionsoptions CONFIG_KCOV # <config_kcov> 763*a1e26a70SApple OSS Distributionsoptions CONFIG_KSANCOV # <config_ksancov> 764*a1e26a70SApple OSS Distributionsoptions CONFIG_STKSZ # <config_stksz> 765*a1e26a70SApple OSS Distributions 766*a1e26a70SApple OSS Distributions# dark boot support 767*a1e26a70SApple OSS Distributionsoptions CONFIG_DARKBOOT # <config_darkboot> 768*a1e26a70SApple OSS Distributions 769*a1e26a70SApple OSS Distributions# support for tracking service port labels for stackshots/debugging 770*a1e26a70SApple OSS Distributionsoptions CONFIG_SERVICE_PORT_INFO # <config_service_port_info> 771*a1e26a70SApple OSS Distributions 772*a1e26a70SApple OSS Distributions# support for processes delaying idle sleep for pending IO 773*a1e26a70SApple OSS Distributionsoptions CONFIG_DELAY_IDLE_SLEEP # <config_delay_idle_sleep> 774*a1e26a70SApple OSS Distributions 775*a1e26a70SApple OSS Distributions# support for storing a 64-bit user supplied value in the proc structure 776*a1e26a70SApple OSS Distributionsoptions CONFIG_PROC_UDATA_STORAGE # <config_proc_udata_storage> 777*a1e26a70SApple OSS Distributions 778*a1e26a70SApple OSS Distributionspseudo-device ksancov 1 init ksancov_init_dev # <config_ksancov> 779*a1e26a70SApple OSS Distributions 780*a1e26a70SApple OSS Distributions# Debug instrumentation for statistics and catching of code that 781*a1e26a70SApple OSS Distributions# leaves interrupts masked or preemption disabled for an excessive 782*a1e26a70SApple OSS Distributions# period of time. 783*a1e26a70SApple OSS Distributionsoptions SCHED_HYGIENE_DEBUG # <sched_hygiene_debug> 784*a1e26a70SApple OSS Distributions 785*a1e26a70SApple OSS Distributions# support for system call rejection/tracing 786*a1e26a70SApple OSS Distributionsoptions CONFIG_DEBUG_SYSCALL_REJECTION # <config_debug_syscall_rejection> 787*a1e26a70SApple OSS Distributions 788*a1e26a70SApple OSS Distributions# Extensible panic log support 789*a1e26a70SApple OSS Distributionsoptions CONFIG_EXT_PANICLOG # <config_ext_paniclog> 790*a1e26a70SApple OSS Distributions 791*a1e26a70SApple OSS Distributions# support for collecting statistics on task suspension 792*a1e26a70SApple OSS Distributionsoptions CONFIG_TASK_SUSPEND_STATS # <config_task_suspend_stats> 793*a1e26a70SApple OSS Distributions 794*a1e26a70SApple OSS Distributions# Support for non-fatal Branch Target Identification exception reporting and logging 795*a1e26a70SApple OSS Distributionsoptions CONFIG_BTI_TELEMETRY # <config_bti_telemetry> 796