# # 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 ZONE_ALIAS_ADDR # # # # 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 # # # # # options KDEBUG # 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 # # # # 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 # options CONFIG_TOKEN_QUEUE_SMALL=1 # options CONFIG_TOKEN_QUEUE_SMALL=0 # # # 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 #