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