1# 2# Mach Operating System 3# Copyright (c) 1986 Carnegie-Mellon University 4# All rights reserved. The CMU software License Agreement 5# specifies the terms and conditions for use and redistribution. 6# 7####################################################################### 8# 9# Master machine independent configuration file. 10# 11# Specific configuration files are created based on this and 12# the machine specific master file using the doconf script. 13# 14# Any changes to the master configuration files will affect all 15# other configuration files based upon it. 16# 17####################################################################### 18# 19# To build a configuration, execute "doconf <configuration>." 20# Configurations are specified in the "Configurations:" section 21# of the MASTER and MASTER.* files as follows: 22# 23# <configuration> = [ <attribute0> <attribute1> ... <attributeN> ] 24# 25# Lines in the MASTER and MASTER.* files are selected based on 26# the attribute selector list, found in a comment at the end of 27# the line. This is a list of attributes separated by commas. 28# The "!" operator selects the line if none of the attributes are 29# specified. 30# 31# For example: 32# 33# <foo,bar> selects a line if "foo" or "bar" are specified. 34# <!foo,bar> selects a line if neither "foo" nor "bar" is 35# specified. 36# 37# Lines with no attributes specified are selected for all 38# configurations. 39# 40####################################################################### 41# SYSTEM SIZE CONFIGURATION (select exactly one) 42# 43# xlarge = extra large scale system configuration 44# large = large scale system configuration 45# medium = medium scale system configuration 46# small = small scale system configuration 47# xsmall = extra small scale system configuration 48# bsmall = special extra small scale system configuration 49# 50####################################################################### 51# 52# Basic compilation options. 53# 54# The MACH ident is passed to every kernel file compilation as -DMACH. 55# This is useful in order to #ifdef code that is intended to be used in 56# a MACH kernel. 57# 58ident MACH 59############################################################################## 60# 61# MACH configuration options. 62# 63# TASK_SWAPPER enables code that manages demand for physical memory by 64# forcibly suspending tasks when the demand exceeds supply. This 65# option should be on. 66# 67options MACH_KERNEL 68options MACH_PAGEMAP # <mach_pagemap> 69options MACH_LOAD 70options MACH_RT 71options TASK_SWAPPER # <task_swapper_disabled> 72pseudo-device test_device 1 73options ADVISORY_PAGEOUT 74########################################################## 75# 76# conf/config.debug 77# 78# This defines configuration options that are normally used only during 79# kernel code development and debugging. They add run-time error checks or 80# statistics gathering, which will slow down the system 81# 82########################################################## 83# 84# MACH_ASSERT controls the assert() and ASSERT() macros, used to verify the 85# consistency of various algorithms in the kernel. The performance impact 86# of this option is significant. 87# 88options MACH_ASSERT # # <mach_assert> 89# 90# MACH_DEBUG enables the mach_debug_server, a message interface used to 91# retrieve or control various statistics. This interface may expose data 92# structures that would not normally be allowed outside the kernel, and 93# MUST NOT be enabled on a released configuration. 94# Other options here enable information retrieval for specific subsystems 95# 96options MACH_DEBUG # # 97options MACH_IPC_DEBUG # # 98# 99options MACH_VM_DEBUG # # <debug> 100# 101# MACH_MP_DEBUG control the possible dead locks that may occur by controlling 102# that IPL level has been raised down to SPL0 after some calls to 103# hardclock device driver. 104# 105options MACH_MP_DEBUG # # <debug> 106# 107# ZONE_DEBUG keeps track of all zalloc()ed elements to perform further 108# operations on each element. 109# 110options ZONE_DEBUG # # <debug> 111 112options CONFIG_ZLEAKS # Live zone leak debugging # <zleaks> 113 114# 115options ZONE_ALIAS_ADDR # # <zone_alias_addr> 116 117 118# 119# CONFIG_TASK_ZONE_INFO allows per-task zone information to be extracted 120# Primarily useful for xnu debug and development. 121# 122options CONFIG_TASK_ZONE_INFO # <task_zone_info> 123# 124# CONFIG_DEBUGGER_FOR_ZONE_INFO restricts zone info so that it is only 125# available when the kernel is being debugged. 126# 127options CONFIG_DEBUGGER_FOR_ZONE_INFO # <debugger_for_zone_info> 128# 129# XPR_DEBUG enables the gathering of data through the XPR macros inserted 130# into various subsystems. This option is normally only enabled for 131# specific performance or behavior studies, as the overhead in both 132# code and data space is large. The data is normally retrieved through 133# the kernel debugger (kdb) or by reading /dev/kmem. 134# 135options XPR_DEBUG # # <debug> 136# 137# MACH_LDEBUG controls the internal consistency checks and 138# data gathering in the locking package. This also enables a debug-only 139# version of simple-locks on uniprocessor machines. The code size and 140# performance impact of this option is significant. 141# 142options MACH_LDEBUG # # <debug> 143 144# 145# configuration option for full, partial, or no kernel debug event tracing 146# 147options KDEBUG # kernel tracing # <kdebug> 148options IST_KDEBUG # limited tracing # <ist_kdebug> 149options NO_KDEBUG # no kernel tracing # <no_kdebug> 150 151# 152# CONFIG_DTRACE enables code needed to support DTrace. Currently this is 153# only used for delivery of traps/interrupts to DTrace. 154# 155options CONFIG_DTRACE # # <config_dtrace> 156 157# MACH_COUNTERS enables code that handles various counters in the system. 158# 159options MACH_COUNTERS # # <debug> 160 161# DEVELOPMENT define for development builds 162options DEVELOPMENT # dev kernel # <development> 163 164########################################################## 165# 166# This defines configuration options that are normally used only during 167# kernel code development and performance characterization. They add run-time 168# statistics gathering, which will slow down the system, 169# 170########################################################## 171# 172# MACH_IPC_STATS controls the collection of statistics in the MACH IPC 173# subsystem. 174# 175#options MACH_IPC_STATS 176# 177# MACH_CO_INFO controls the collection of callout statistics. This 178# information is retrieved via a mach_debug message, or though 179# /dev/kmem. The runtime impact of the option is minimal. 180# 181#options MACH_CO_INFO 182# 183# MACH_CLUSTER_STATS controls the collection of various statistics concerning 184# the effectiveness and behavior of the clustered pageout and pagein 185# code. 186# 187#options MACH_CLUSTER_STATS 188# 189# MACH_SCTIMES enables optional code that can be used to measure the 190# execution overhead of performing Mach traps with 1 through 6 191# arguments. 192# 193#options MACH_SCTIMES 194# 195# MACH_COUNTERS enables various code-path statistics. Most of these 196# are accessed through the debugger. 197# 198options MACH_COUNTERS # # <stats> 199 200# 201# configuration option for including cypto code 202# 203options CRYPTO # <crypto> 204 205# HIBERNATION - include hibernation code 206# 207options HIBERNATION # # <hibernation> 208 209# CONFIG_SLEEP - include sleep power state code 210# 211options CONFIG_SLEEP # # <config_sleep> 212 213# CONFIG_KEXT_BASEMENT - alloc post boot loaded kexts after prelinked kexts 214# 215options CONFIG_KEXT_BASEMENT # # <config_kext_basement> 216 217 218# 219# configurable kernel related resources (CONFIG_THREAD_MAX needs to stay in 220# sync with bsd/conf/MASTER until we fix the config system... todo XXX 221# 222options CONFIG_THREAD_MAX=2560 # <medium,large,xlarge> 223options CONFIG_THREAD_MAX=1536 # <small,xsmall> 224options CONFIG_THREAD_MAX=1024 # <bsmall> 225 226options CONFIG_TASK_MAX=1024 # <medium,large,xlarge> 227options CONFIG_TASK_MAX=768 # <small,xsmall> 228options CONFIG_TASK_MAX=512 # <bsmall> 229 230options CONFIG_ZONE_MAP_MIN=12582912 # <medium,large,xlarge> 231options CONFIG_ZONE_MAP_MIN=6291456 # <small,xsmall> 232options CONFIG_ZONE_MAP_MIN=1048576 # <bsmall> 233 234# Sizes must be a power of two for the zhash to 235# be able to just mask off bits instead of mod 236options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=16384 #<medium,large,xlarge> 237options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=8192 #<small,xsmall,bsmall> 238options CONFIG_ZLEAK_TRACE_MAP_NUM=8192 #<medium,large,xlarge> 239options CONFIG_ZLEAK_TRACE_MAP_NUM=4096 #<small,xsmall,bsmall> 240 241# 242# configurable kernel - use these options to strip strings from panic 243# and printf calls. 244# no_panic_str - saves around 50K of kernel footprint. 245# no_printf_str - saves around 45K of kernel footprint. 246# 247options CONFIG_NO_PANIC_STRINGS # <no_panic_str> 248options CONFIG_NO_PRINTF_STRINGS # <no_printf_str> 249options CONFIG_NO_KPRINTF_STRINGS # <no_kprintf_str> 250 251# support dynamic signing of code 252# 253options CONFIG_DYNAMIC_CODE_SIGNING # <dynamic_codesigning> 254 255# vc_progress_white - make the progress gear white instead of black 256options CONFIG_VC_PROGRESS_WHITE # <vc_progress_white> 257 258# secure_kernel - secure kernel from user programs 259options SECURE_KERNEL # <secure_kernel> 260 261# 262# Context switched counters 263# 264options CONFIG_COUNTERS # <config_counters> 265 266# 267# Timeshare scheduler implementations 268# 269options CONFIG_SCHED_TRADITIONAL # <config_sched_traditional> 270options CONFIG_SCHED_PROTO # <config_sched_proto> 271options CONFIG_SCHED_GRRR # <config_sched_grrr> 272options CONFIG_SCHED_FIXEDPRIORITY # <config_sched_fixedpriority> 273options CONFIG_SCHED_GRRR_CORE # <config_sched_grrr,config_sched_fixedpriority> 274 275options CONFIG_SCHED_IDLE_IN_PLACE # <config_sched_idle_in_place> 276options CONFIG_GZALLOC # <config_gzalloc> 277# 278# enable per-process memory priority tracking 279# 280options CONFIG_MEMORYSTATUS # <memorystatus> 281 282# 283# enable jetsam - used on embedded 284# 285options CONFIG_JETSAM # <jetsam> 286 287# 288# enable freezing of suspended processes - used on embedded 289# 290options CONFIG_FREEZE # <freeze> 291 292options CHECK_CS_VALIDATION_BITMAP # <config_cs_validation_bitmap> 293 294# 295# Enable dispatch of memory pressure events from the vm_pageout_garbage_collect thread 296# 297options VM_PRESSURE_EVENTS # <vm_pressure_events> 298 299# 300# Enable inheritance of importance through specially marked mach ports and for file locks 301# For now debug is enabled wherever inheritance is 302# 303options IMPORTANCE_INHERITANCE # <importance_inheritance> 304options IMPORTANCE_DEBUG # <importance_inheritance> 305 306# Enable allocation of contiguous physical memory through vm_map_enter_cpm() 307options VM_CPM # <vm_cpm> 308 309options CONFIG_SKIP_PRECISE_USER_KERNEL_TIME # <config_skip_precise_user_kernel_time> 310 311options CONFIG_TELEMETRY # <config_telemetry> 312 313# 314# Switch to disable cpu, wakeup and high memory watermark monitors 315# 316options CONFIG_NOMONITORS # <config_nomonitors> 317 318# 319# In-kernel tests 320# 321options CONFIG_IN_KERNEL_TESTS # <in_kernel_tests> 322 323