MASTER   [plain text]


#
# 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 <configuration>."
#	Configurations are specified in the "Configurations:" section
#	of the MASTER and MASTER.* files as follows:
#
#	<configuration> = [ <attribute0> <attribute1> ... <attributeN> ]
#
#	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:
#
#	<foo,bar>	selects a line if "foo" or "bar" are specified.
#	<!foo,bar>	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	#	<task_swapper_disabled>
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_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	#		# <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	#		# <debug>
#
# ZONE_DEBUG keeps track of all zalloc()ed elements to perform further
#	operations on each element.
#
options		ZONE_DEBUG	#		# <debug>
#
options		ZONE_ALIAS_ADDR	#		# <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	#		# <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	#		# <debug>

#
# 
#
options		KDEBUG		# kernel tracing	# <kdebug>

#
# CONFIG_DTRACE enables code needed to support DTrace. Currently this is
# only used for delivery of traps/interrupts to DTrace.
#
options		CONFIG_DTRACE	#		# <config_dtrace>

# MACH_COUNTERS enables code that handles various counters in the system.
# 
options		MACH_COUNTERS	#		# <debug>


##########################################################
#
# 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		#		# <stats>

#
#  configuration option for including cypto code
#
options		CRYPTO                  # <crypto>

# HIBERNATION - include hibernation code
#
options		HIBERNATION		#		# <hibernation>

# CONFIG_SLEEP - include sleep power state code
#
options		CONFIG_SLEEP		#		# <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		# <medium,large,xlarge>
options   CONFIG_THREAD_MAX=1536		# <small,xsmall>
options   CONFIG_THREAD_MAX=1024		# <bsmall>

options   CONFIG_TASK_MAX=1024			# <medium,large,xlarge>
options   CONFIG_TASK_MAX=768			# <small,xsmall>
options   CONFIG_TASK_MAX=512			# <bsmall>

options   CONFIG_ZONE_MAP_MIN=12582912	# <medium,large,xlarge>
options   CONFIG_ZONE_MAP_MIN=6291456	# <small,xsmall>
options   CONFIG_ZONE_MAP_MIN=1048576	# <bsmall>

options   CONFIG_TOKEN_QUEUE_SMALL=1		# <bsmall>
options   CONFIG_TOKEN_QUEUE_SMALL=0		# <xsmall,small,medium,large,xlarge>

#
#  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		# <no_panic_str>
options   CONFIG_NO_PRINTF_STRINGS		# <no_printf_str>
options   CONFIG_NO_KPRINTF_STRINGS		# <no_kprintf_str>

# configurable kernel - general switch to say we are building for an
# embedded device
#
options   CONFIG_EMBEDDED                       # <config_embedded>

# only execute signed code. Hang this off config_embedded since there's
# nothing more appropriate right now
#
options   CONFIG_ENFORCE_SIGNED_CODE		# <config_embedded>

# support dynamic signing of code
#
options		CONFIG_DYNAMIC_CODE_SIGNING	# <dynamic_codesigning>

# vc_progress_white - make the progress gear white instead of black
options	  CONFIG_VC_PROGRESS_WHITE		# <vc_progress_white>

# secure_kernel - secure kernel from user programs
options		SECURE_KERNEL		# <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	# <config_embedded>

#
# Context switched counters 
#
options		CONFIG_COUNTERS			# <config_counters>