# # Mach Operating System # Copyright (c) 1986 Carnegie-Mellon University # All rights reserved. The CMU software License Agreement # specifies the terms and conditions for use and redistribution. # ####################################################################### # # Master machine independent configuration file. # # Specific configuration files are created based on this and # the machine specific master file using the doconf script. # # Any changes to the master configuration files will affect all # other configuration files based upon it. # ####################################################################### # # To build a configuration, execute "doconf ." # Configurations are specified in the "Configurations:" section # of the MASTER and MASTER.* files as follows: # # = [ ... ] # # Lines in the MASTER and MASTER.* files are selected based on # the attribute selector list, found in a comment at the end of # the line. This is a list of attributes separated by commas. # The "!" operator selects the line if none of the attributes are # specified. # # For example: # # selects a line if "foo" or "bar" are specified. # selects a line if neither "foo" nor "bar" is # specified. # # Lines with no attributes specified are selected for all # configurations. # ####################################################################### # SYSTEM SIZE CONFIGURATION (select exactly one) # # xlarge = extra large scale system configuration # large = large scale system configuration # medium = medium scale system configuration # small = small scale system configuration # xsmall = extra small scale system configuration # bsmall = special extra small scale system configuration # ####################################################################### # # Basic compilation options. # # The MACH ident is passed to every kernel file compilation as -DMACH. # This is useful in order to #ifdef code that is intended to be used in # a MACH kernel. # ident MACH ############################################################################## # # MACH configuration options. # # TASK_SWAPPER enables code that manages demand for physical memory by # forcibly suspending tasks when the demand exceeds supply. This # option should be on. # options MACH_KERNEL options MACH_PAGEMAP # options MACH_LOAD options MACH_RT options TASK_SWAPPER # pseudo-device test_device 1 options ADVISORY_PAGEOUT ########################################################## # # conf/config.debug # # This defines configuration options that are normally used only during # kernel code development and debugging. They add run-time error checks or # statistics gathering, which will slow down the system # ########################################################## # # MACH_ASSERT controls the assert() and ASSERT() macros, used to verify the # consistency of various algorithms in the kernel. The performance impact # of this option is significant. # options MACH_ASSERT # # # # MACH_DEBUG enables the mach_debug_server, a message interface used to # retrieve or control various statistics. This interface may expose data # structures that would not normally be allowed outside the kernel, and # MUST NOT be enabled on a released configuration. # Other options here enable information retrieval for specific subsystems # options MACH_DEBUG # # options MACH_IPC_DEBUG # # # options MACH_VM_DEBUG # # # # MACH_MP_DEBUG control the possible dead locks that may occur by controlling # that IPL level has been raised down to SPL0 after some calls to # hardclock device driver. # options MACH_MP_DEBUG # # # # ZONE_DEBUG keeps track of all zalloc()ed elements to perform further # operations on each element. # options ZONE_DEBUG # # options CONFIG_ZLEAKS # Live zone leak debugging # # options ZONE_ALIAS_ADDR # # # # CONFIG_TASK_ZONE_INFO allows per-task zone information to be extracted # Primarily useful for xnu debug and development. # options CONFIG_TASK_ZONE_INFO # # # CONFIG_DEBUGGER_FOR_ZONE_INFO restricts zone info so that it is only # available when the kernel is being debugged. # options CONFIG_DEBUGGER_FOR_ZONE_INFO # # # XPR_DEBUG enables the gathering of data through the XPR macros inserted # into various subsystems. This option is normally only enabled for # specific performance or behavior studies, as the overhead in both # code and data space is large. The data is normally retrieved through # the kernel debugger (kdb) or by reading /dev/kmem. # options XPR_DEBUG # # # # MACH_LDEBUG controls the internal consistency checks and # data gathering in the locking package. This also enables a debug-only # version of simple-locks on uniprocessor machines. The code size and # performance impact of this option is significant. # options MACH_LDEBUG # # # # configuration option for full, partial, or no kernel debug event tracing # options KDEBUG # kernel tracing # options IST_KDEBUG # limited tracing # options NO_KDEBUG # no kernel tracing # # # CONFIG_DTRACE enables code needed to support DTrace. Currently this is # only used for delivery of traps/interrupts to DTrace. # options CONFIG_DTRACE # # # MACH_COUNTERS enables code that handles various counters in the system. # options MACH_COUNTERS # # ########################################################## # # This defines configuration options that are normally used only during # kernel code development and performance characterization. They add run-time # statistics gathering, which will slow down the system, # ########################################################## # # MACH_IPC_STATS controls the collection of statistics in the MACH IPC # subsystem. # #options MACH_IPC_STATS # # MACH_CO_INFO controls the collection of callout statistics. This # information is retrieved via a mach_debug message, or though # /dev/kmem. The runtime impact of the option is minimal. # #options MACH_CO_INFO # # MACH_CLUSTER_STATS controls the collection of various statistics concerning # the effectiveness and behavior of the clustered pageout and pagein # code. # #options MACH_CLUSTER_STATS # # MACH_SCTIMES enables optional code that can be used to measure the # execution overhead of performing Mach traps with 1 through 6 # arguments. # #options MACH_SCTIMES # # MACH_COUNTERS enables various code-path statistics. Most of these # are accessed through the debugger. # options MACH_COUNTERS # # # # configuration option for including cypto code # options CRYPTO # # HIBERNATION - include hibernation code # options HIBERNATION # # # CONFIG_SLEEP - include sleep power state code # options CONFIG_SLEEP # # # CONFIG_KEXT_BASEMENT - alloc post boot loaded kexts after prelinked kexts # options CONFIG_KEXT_BASEMENT # # # # configurable kernel related resources (CONFIG_THREAD_MAX needs to stay in # sync with bsd/conf/MASTER until we fix the config system... todo XXX # options CONFIG_THREAD_MAX=2560 # options CONFIG_THREAD_MAX=1536 # options CONFIG_THREAD_MAX=1024 # options CONFIG_TASK_MAX=1024 # options CONFIG_TASK_MAX=768 # options CONFIG_TASK_MAX=512 # options CONFIG_ZONE_MAP_MIN=12582912 # options CONFIG_ZONE_MAP_MIN=6291456 # options CONFIG_ZONE_MAP_MIN=1048576 # # Sizes must be a power of two for the zhash to # be able to just mask off bits instead of mod options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=16384 # options CONFIG_ZLEAK_ALLOCATION_MAP_NUM=8192 # options CONFIG_ZLEAK_TRACE_MAP_NUM=8192 # options CONFIG_ZLEAK_TRACE_MAP_NUM=4096 # # # configurable kernel - use these options to strip strings from panic # and printf calls. # no_panic_str - saves around 50K of kernel footprint. # no_printf_str - saves around 45K of kernel footprint. # options CONFIG_NO_PANIC_STRINGS # options CONFIG_NO_PRINTF_STRINGS # options CONFIG_NO_KPRINTF_STRINGS # # configurable kernel - general switch to say we are building for an # embedded device # options CONFIG_EMBEDDED # # only execute signed code. Hang this off config_embedded since there's # nothing more appropriate right now # options CONFIG_ENFORCE_SIGNED_CODE # # support dynamic signing of code # options CONFIG_DYNAMIC_CODE_SIGNING # # vc_progress_white - make the progress gear white instead of black options CONFIG_VC_PROGRESS_WHITE # # secure_kernel - secure kernel from user programs options SECURE_KERNEL # # # code decryption... used on embedded for app protection # must be set in all the bsd/conf and osfmk/conf MASTER files # options CONFIG_CODE_DECRYPTION # # # Context switched counters # options CONFIG_COUNTERS # # # Timeshare scheduler implementations # options CONFIG_SCHED_TRADITIONAL # options CONFIG_SCHED_PROTO # options CONFIG_SCHED_GRRR # options CONFIG_SCHED_FIXEDPRIORITY # options CONFIG_SCHED_GRRR_CORE # options CONFIG_SCHED_IDLE_IN_PLACE # options CONFIG_GZALLOC # # # enable per-process memory priority tracking # options CONFIG_MEMORYSTATUS # # # enable jetsam - used on embedded # options CONFIG_JETSAM # # # enable freezing of suspended processes - used on embedded # options CONFIG_FREEZE # options CHECK_CS_VALIDATION_BITMAP # # # Enable dispatch of memory pressure events from the vm_pageout_garbage_collect thread # options VM_PRESSURE_EVENTS # # Enable allocation of contiguous physical memory through vm_map_enter_cpm() options VM_CPM # options CONFIG_SKIP_PRECISE_USER_KERNEL_TIME #