#
# Mach Operating System
# Copyright (c) 1991,1990,1989,1988,1987,1986 Carnegie Mellon University
# All Rights Reserved.
# 
# Permission to use, copy, modify and distribute this software and its
# documentation is hereby granted, provided that both the copyright
# notice and this permission notice appear in all copies of the
# software, derivative works or modified versions, and any portions
# thereof, and that both notices appear in supporting documentation.
# 
# CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
# CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
# ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
# 
# Carnegie Mellon requests users of this software to return to
# 
#  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
#  School of Computer Science
#  Carnegie Mellon University
#  Pittsburgh PA 15213-3890
# 
# any improvements or extensions that they make and grant Carnegie Mellon
# the rights to redistribute these changes.
#  
#
# HISTORY
# $Log:	MASTER,v $
# Revision 2.15  91/09/12  16:35:35  bohman
# 	Added ufs_pager option and made it the default.  Not enabling it allows
# 	a different default pager setup to be supplied.
# 	[91/09/11  16:53:41  bohman]
# 
# Revision 2.14  91/08/28  11:10:00  jsb
# 	Added lineno build option.
# 	[91/08/26  11:12:32  jsb]
# 
# Revision 2.13  91/08/03  18:17:06  jsb
# 	Replaced NORMA_BOOT with more specific NORMA_DEVICE.
# 	[91/07/27  18:24:47  jsb]
# 
# 	Added NORMA_ETHER option.
# 	[91/07/24  22:34:52  jsb]
# 
# Revision 2.12  91/07/09  23:14:11  danner
# 	Added support for luna88k (pseudo-device cpus 4).
# 	[91/05/06            danner]
# 
# Revision 2.11  91/06/17  15:43:31  jsb
# 	Rearranged and renamed NORMA options.
# 	[91/06/17  09:54:37  jsb]
# 
# Revision 2.10  91/06/06  17:03:28  jsb
# 	Added MACH_CLTASK, under NORMA.
# 	[91/05/13  16:46:15  jsb]
# 
# Revision 2.9  91/05/14  15:24:11  mrt
# 	Correcting copyright
# 
# Revision 2.8  91/05/13  06:01:58  af
# 	Rid of the "CMU" conditional once and forall.
# 	[91/05/12  15:43:10  af]
# 
# Revision 2.7  91/03/16  14:41:47  rpd
# 	Added MACH_COUNTERS (tag count).
# 	[91/02/24            rpd]
# 
# Revision 2.6  91/02/05  17:01:58  mrt
# 	Changed to new copyright
# 	[91/01/28  14:45:37  mrt]
# 
# Revision 2.5  91/01/08  15:08:42  rpd
# 	Removed FAST_CSW (tag fast_csw).
# 	[90/12/08            rpd]
# 	Removed MACH_IPC_GENNOS (tag ipc_gennos).
# 	[90/11/08            rpd]
# 
# Revision 2.4  90/09/28  16:53:11  jsb
# 	Added preliminary NORMA support.
# 	[90/09/28  14:00:51  jsb]
# 
# Revision 2.3  90/06/02  14:45:48  rpd
# 	Added MACH_VM_DEBUG (tag vm_debug) and added it to STD.
# 	[90/04/20            rpd]
# 	Converted to new IPC.
# 	Cleaned up, removing timezone, maxusers, etc.
# 	[90/03/26  21:33:20  rpd]
# 
#
# Condensed history:
#	MACH_KERNEL version (dbg).
#	Changes for cleanup (gm0w).
# 	Made STD config be small (mrt).
#
#######################################################################
#
#	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.
#
#######################################################################
#
#  STANDARD CONFIGURATION OPTIONS (select any combination)
#
#	debug   = kernel level debugging support
#	mdebug	= enable debugging kernel calls
#	ldebug	= check use of simple locks on uniprocessors
#	assert	= enable assertions
#	lineno	= generate filename and line number debugging info
#
#  EXPERIMENTAL CONFIGURATION OPTIONS (select any combination, carefully)
#
#	simple  = non-rollover clock support
#	timing  = precision timing support
#	host	= host resource control support
#	pm	= paged-out page map hints
#	fixpri	= fixed priority threads
#
#  MULTI-PROCESSOR CONFIGURATION (select at most one)
#
#	multi16 = enable 16 multi-processors
#	multi32 = enable 32 multi-processors
#	multi64 = enable 64 multi-processors
#
#  MULTICOMPUTER OPTIONS (each option requires all previous options,
#			  for example, norma_vm requires norma_ipc.
#			  Except that norma_device and norma_ether both
#			  only need norma_ipc.)
#
#
#	norma_ipc  = NORMA internode ipc
#	norma_vm   = NORMA virtual memory support (distributed virtual memory)
#	norma_task = NORMA task support (remote creation, migration)
#
#	norma_ether  = use ethernet as NORMA interconnect
#	norma_device = support for unified device name space for all nodes
#
#######################################################################
#  
#
#  Standard CMU CS/RI Production Configuration Components:
#  -------- --- -- -- ---------- ------------- ----------
#
#  STD       = [ debug mdebug ipc_compat ipc_debug vm_debug ufs_pager ]
#
#  (Optional for multi-processor configurations)
#
#  64        = [ multi64 host ]
#  32        = [ multi32 host ]
#  16        = [ multi16 host ]
#
#  (Optional for multicomputer configurations)
#
#  NORMA     = [ norma_ipc norma_device norma_task norma_vm ]
#
#  (Normally not enabled because of correctness or performance concerns)
#
#  EXP	     = [ pm ]
#
#  (Useful for testing, but may cause significant performance degradation)
#
#  TEST	     = [ assert ldebug ipc_test count ]
#
#######################################################################
#
ident		MACH

options		MACH_KERNEL	# Standalone MACH kernel
options		MACH_ASSERT	# Compile in assertions		# <assert>
options		MACH_DEBUG	# IPC debugging interface	# <mdebug>
options		MACH_FIXPRI	# Fixed priority threads	# <fixpri>
options		MACH_HOST	# Mach host (resource alloc.)	# <host>
options		MACH_IPC_COMPAT	# Enable old IPC interface	# <ipc_compat>
options		MACH_IPC_DEBUG	# Enable IPC debugging calls	# <ipc_debug>
options		MACH_IPC_TEST	# Testing code/printfs		# <ipc_test>
options		MACH_KDB	# Kernel debugger support	# <debug>
options		MACH_LDEBUG	# Sanity-check simple locking	# <ldebug>
options		MACH_PAGEMAP	# Paged-out page map hints	# <pm>
options		NORMA_IPC	# NORMA IPC support		# <norma_ipc>
options		NORMA_DEVICE	# NORMA unified device names	#<norma_device>
options		NORMA_VM	# NORMA virtual memory support	# <norma_vm>
options		NORMA_TASK	# NORMA task support		# <norma_task>
options		NORMA_ETHER	# NORMA across ethernet		# <norma_ether>
options		MACH_COUNTERS	# counters			# <count>
options		MACH_VM_DEBUG	# Enable VM debugging calls	# <vm_debug>
options		HW_FOOTPRINT	# Cache footprint support	# <hw_foot>
options		SIMPLE_CLOCK	# no hardware clock rollover	# <simple>
options		STAT_TIME	# Use statistical timing	# <!timing>
options		XPR_DEBUG	# kernel tracing		# <debug>
options		UFS_PAGER	# include in-kernel ufs pager	# <ufs_pager>

#
#  Multi-processor selection
#
pseudo-device	cpus		64	# <multi64>
pseudo-device	cpus		32	# <multi32>
pseudo-device	cpus		16	# <multi16>
pseudo-device   cpus            4       # <luna88k>
pseudo-device	cpus		1	# <!multi64,multi32,multi16,luna88k>
#
