#
# Mach Operating System
# Copyright (c) 1989 Carnegie-Mellon University
# Copyright (c) 1988 Carnegie-Mellon University
# Copyright (c) 1987 Carnegie-Mellon University
# Copyright (c) 1986 Carnegie-Mellon University
# All rights reserved.  The CMU software License Agreement specifies
# the terms and conditions for use and redistribution.
#  
#
# HISTORY
# $Log:	MASTER,v $
# Revision 2.34  89/10/11  13:53:47  dlb
# 	Add MACH_KM for kernel monitoring (km).
# 	Add HW_FOOTPRINT for processor affinity (hw_foot).
# 	Add MACH_HOST for processor allocation (host).
# 	Add HW_AST to indicate whether hardware does its own asts (hw_ast). 
# 	Add FAST_CSW to indicate whether scheduler prims are updated (fast_csw).
# 
# Revision 2.33  89/10/10  10:49:18  mwyoung
# 	Added MACH_OLD_VM_COPY switch, to enable old vm_copy technology.
# 	[89/10/03            mwyoung]
# 	Make fast symbolic links an architecture-independent option.
# 	[89/05/12  16:02:31  mwyoung]
# 
# Revision 2.32  89/09/09  15:18:48  rvb
# 	MACH_RFS is now an option under rfs and can be excluded.
# 	But it is included in STD.
# 	[89/09/07            rvb]
# 
# Revision 2.31  89/08/08  21:46:21  jsb
# 	t & exl now get coff and bsd
# 	[89/08/03            rvb]
# 
# Revision 2.30  89/06/30  22:30:42  rpd
# 	Moved mdebug from EXP to MSTD.
# 	[89/06/30  16:27:10  rpd]
# 
# Revision 2.29  89/06/27  00:22:56  rpd
# 	Moved ipc_sighack, ipc_xxxhack to MASTER.local.
# 	Commented the IPC options.
# 	[89/06/26  23:36:26  rpd]
# 
# Revision 2.28  89/05/30  10:36:53  rvb
# 	Mips machines, e.g. pmax and mseries are also coff based.
# 	[89/04/20            af]
# 
# Revision 2.27  89/05/01  15:22:49  rpd
# 	Purged MACH_IPC_RCVHACK.
# 	[89/05/01  13:48:11  rpd]
# 
# Revision 2.26  89/04/18  16:42:49  mwyoung
# 	Add MACH_PAGEMAP (pm).
# 	[89/04/16            mwyoung]
# 
# Revision 2.25  89/03/04  17:11:52  rpd
# 	at and exl want coff vs bsd a.out
# 	[89/03/01            rvb]
# 
# Revision 2.24  89/02/25  17:37:28  gm0w
# 	Changes for cleanup.
# 
# Revision 2.23  89/01/23  22:10:49  af
# 	MAXDSIZ is no longer an option.  It has its own parse rule.
# 	[89/01/09            rvb]
# 
# Revision 2.22  89/01/18  00:48:38  jsb
# 	Place AFS and NFS into the standard configuration.
# 	[89/01/17  18:04:49  jsb]
# 	
# 	Add MACH_{VFS,NFS,AFS}, SUN_RPC options.
# 	[89/01/17  10:10:44  jsb]
# 
# Revision 2.21  89/01/17  02:05:50  rpd
# 	Removed the "xp" and "xp_fpd" tags.  Now the "mach" tag turns on
# 	the MACH_XP and MACH_XP_FPD options.
# 
# Revision 2.20  89/01/12  07:41:14  rpd
# 	Changed MACH_COSTATS (tag "costats") to MACH_CO_STATS (tag "co_stats").
# 	Added MACH_CO_INFO (tag "co_info") and MACH_DEBUG (tag "mdebug").
# 	[89/01/12  04:30:57  rpd]
# 
# Revision 2.19  89/01/10  23:25:09  rpd
# 	Changed MACH_IPCSTATS to MACH_IPC_STATS.  Changed tag to "ipc_stats".
# 	Added MACH_IPC_XXXHACK (tag "ipc_xxxhack"); it enables the obsolete
# 	xxx_port_allocate, etc, kernel calls and the obsolete IPC traps.
# 	Added ipc_xxxhack to MSTD.
# 	[89/01/10  22:41:34  rpd]
# 
# Revision 2.18  88/12/20  13:47:20  rpd
# 	Added MACH_IPC_RCVHACK (tag is "ipc_rcvhack")
# 	and MACH_IPC_SIGHACK (tag is "ipc_sighack").
# 	Added ipc_sighack to MSTD.
# 	[88/11/26  21:17:28  rpd]
# 
# Revision 2.17  88/12/19  02:40:06  mwyoung
# 	Remove old MACH_EXCEPTION, MACH_PTRACE, MACH_IPC, and MACH_MACH
# 	conditionals.  Make MACH_XP and MACH_XP_FPD standard (keyed on "mach").
# 	[88/12/14            mwyoung]
# 
# Revision 2.16  88/10/27  17:30:18  mrt
# 	27-Oct-88 Mary Thompson (mrt)
# 	Made STD config to be small.
# 	maxusers can be patched for machines which need it to be
# 	larger
# 	[88/10/27  17:07:06  mrt]
# 
# Revision 2.15  88/10/27  10:42:11  rpd
# 	Added MACH_SCTIMES option, which turns on some "dummy" system
# 	calls useful for collecting syscall performance numbers.
# 	Changed MACH_IPCSTATS tag to "ipcstats" from "stats".
# 	[88/10/26  14:30:27  rpd]
# 
# Revision 2.14  88/10/01  21:50:37  rpd
# 	Changed CS_ASSERT to CMUCS_ASSERT.
# 	[88/10/01  21:14:17  rpd]
# 	
# 	Changed FAST_PAGER_DATA to MACH_XP_FPD.
# 	[88/09/29  01:05:54  rpd]
# 
# Revision 2.13  88/09/25  22:08:19  rpd
# 	Added new options MACH_IPC_TCACHE (ipc_tcache)
# 	and MACH_IPC_WWA (ipc_wwa).  Added MSTD combo.
# 	[88/09/19  23:23:07  rpd]
# 	
# 	Added MACH_COSTATS option, with costats tag.
# 	[88/09/09  04:39:53  rpd]
# 
# Revision 2.12  88/08/25  19:15:53  mwyoung
# 	Eliminate old options.
# 	[88/08/22            mwyoung]
# 	
# 	Eliminate old options.
# 	[88/08/25  19:23:41  mwyoung]
# 
# Revision 2.11  88/08/11  13:28:35  rvb
# Now mach_emulation can be abbreviated me, and mach_directory - md.
# define MACHXPE as MACH + md + xp + me
# 
# Revision 2.10  88/08/09  17:53:02  rvb
# make mach_directory option work and rename it "md"
# 
# Revision 2.9  88/08/06  18:06:10  rpd
# Added CMUCS_DEBUG option, turned on by the "test" attribute.
# 
# Revision 2.8  88/07/20  16:19:27  rpd
# Add new tags "test" (turns on cs_assert and mach_ldebug)
# and "stats" (turns on mach_ipcstats).  The mach_ldebug option
# only does something when NCPUS == 1.
# 
# Revision 2.7  88/07/17  18:49:50  mwyoung
# Remove bogus history.
# 
# Revision 2.6  88/07/17  17:52:18  mwyoung
# Added FAST_PAGER_DATA option.
# 
# Revision 2.5  88/07/16  00:45:44  mwyoung
# Replace old machine-specific forms for MACH with a new one.
# In the future, machine-specific changes for all MACH configurations
# should be placed in the MASTER.<machine>.local file.
# 
# 12-May-88  Mike Accetta (mja) at Carnegie-Mellon University
#	Added MACH_COMPAT option to enable vendor system call
#	compatibility under "mach" attribute and converted MACH_NET
#	option to "mach" attribute from "xnet" since the listen
#	operation is now restricted; renamed DEFAULT => STD and
#	SPECIAL => OLD.
#	[ V5.1(XF24) ]
#

#######################################################################
#
#	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   = extra kernel level debugging support
#	mach    = Mach support 
#	unix    = a UNIX perspective on the world
#
#  EXPERIMENTAL CONFIGURATION OPTIONS (select any combination, carefully)
#
#	nbc     = no buffer cache support
#	simple  = non-rollover clock support
#	timing  = precision timing support
#	me      = user space syscall emulation
#	md      = fast directory access support (using Mach VM)
#	host	= host resource control support
#	pm	= paged-out page map hints
#
#  PSEUDO-DEVICES (select any combination)
#
#	sl   = Serial line IP support
#	vice = CMU VICE file system support
#
#  MULTI-PROCESSOR CONFIGURATION (select at most one)
#
#	multi16 = enable 16 multi-processors
#	multi32 = enable 32 multi-processors
#	multi64 = enable 64 multi-processors
#
#  SYSTEM SIZE CONFIGURATION (select no more than 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 for
#		 (e.g. for boot floppies)
#
#######################################################################
#
#  DEPRECATED CONFIGURATION OPTIONS (select any combination, reluctantly)
#
#	oldfs   = 4.1 file system support
#	oldipc  = old CMU IPC support
#
#  DEPRECATED PSEUDO-DEVICES (select any combination, reluctantly)
#
#	fe   = CMU CS Front End terminal support
#	ild  = INGRES lock device support
#
#######################################################################
#  
#
#  Standard CMU CS/RI Production Configuration Components:
#  -------- --- -- -- ---------- ------------- ----------
#
#  BOOT      = [      mach      unix       MSTD        ]
#  OLD       = [debug      vice unix                   ]
#  STD       = [debug mach      unix small MSTD rfs nfs afs]

#  BS	     = [bsmall]
#  XS        = [xsmall]
#  S         = [ small]
#  M         = [medium]
#  L         = [ large]
#  XL        = [xlarge]
#
#  (Optional for multi-processor configurations)
#
#  64        = [multi64 host]
#  32        = [multi32 host]
#  16        = [multi16 host]
#
#  Options which are almost always turned on when mach is turned on,
#  but can still be individually selected (eg, "MACH-ipc_tcache"):
#
#  MSTD      = [ mdebug ipc_tcache ]
#
#  Some old Mach configuration shorthands... to construct a configuration
#  for an old name like "MACHRTEMUL" use "MACH+mach_emulation":
#
#  MACH          = [ STD ]
#  MACHXPE       = [ MACH md me ]
#
#  MACHSUN3      = [ STD ANY ]
#  MACHRT        = [ STD ANY md ]
#  MACHSQT       = [ debug mach vice unix MSTD ANY multi32 xlarge db md]
#
#  DIR           = [ md vmtp np ]
#
#  To protect the innocent:
#
#  mach_directory = [ md ]
#  mach_emulation = [ me ]
#
#  Explanation of Mach IPC options:
#
#  The multitude of IPC options allow various features to be turned on/off
#  for compatibility purposes.  Unless you have a specific need,
#  they should be left with their default values.  (Note that at CMU
#  some of the backwards-compatibility options are turned on in
#  the conf/MASTER.local file.)  There are also a few options for
#  for debugging/measuring purposes, that do not change IPC semantics.
#  The options are all independent; any combination will work.
#
#	MACH_IPC_SIGHACK (ipc_sighack) (default is OFF)
#		When enabled, messages sent to ports in ports sets
#		will generate signals in the receiving task.  (If
#		MSG_TYPE_EMERGENCY, then SIGEMSG, else SIGMSG.)  This
#		feature (emergency messages, too) is obsolete.  It is
#		no longer necessary now that Mach supports
#		multi-threaded tasks, and it is very awkward to
#		implement when Unix signal functionality is no longer
#		in the kernel.  It is enabled at CMU in MASTER.local
#		because CMU Common Lisp still relies on it.
#
#	MACH_IPC_STATS (ipc_stats) (default is OFF)
#		When enabled, some IPC statistics are collected at
#		runtime.  If MACH_DEBUG is also enabled, then the
#		host_ipc_statistics and host_ipc_statistics_reset
#		kernel calls may be used.  Otherwise, adb/kdb work.
#		The disadvantage to enabling it is that the kernel
#		gets a little bigger and IPC operations get a little
#		slower.  At CMU, it is enabled in MASTER.local for EXP
#		configurations.
#
#	MACH_IPC_TCACHE (ipc_tcache) (default is ON)
#		This option enables a cache of (task, name) -> port
#		(ie, port translations) mappings.  The MACH_IPC_STATS
#		option enables collection of hit/miss statistics for
#		the cache.  The advantage to enabling it is that IPC
#		operations generally get faster.  The big disadvantage
#		is that the task structure gets bigger.
#
#	MACH_IPC_WWA (ipc_wwa) (default is OFF)
#		This option controls exactly how blocked senders are
#		woken up when there is room in the port's queue.  If
#		enabled, a blocked sender is woken up as soon as there
#		is space in the queue.  If disabled, all blocked
#		senders are woken up when the queue is completely
#		drained.  The advantage to having it disabled is that
#		Rick's streaming IPC test gets better times.  Presumably
#		if we had good scheduling we could turn it on.
#
#	MACH_IPC_XXXHACK (ipc_xxxhack) (default is OFF)
#		This is the main backwards-compatibility option.  When
#		enabled (done at CMU in MASTER.local), the old message
#		traps and kernel calls still work.  It also turns on
#		ownership rights.  The big disadvantage is that it
#		makes the kernel bigger.  (The time penalty is small.)
#
#######################################################################
#
ident		CMU

options		GENERIC		# <!bsmall>
options		QUOTA		# <quota>
options		INET
options		DLI		# Direct data-link interface protocol
options		SYSV_COFF	# format of load files		# <mmax,at,exl,pmax,mseries>
options		BSD_A_OUT	# format of load files		# <!mmax,pmax,mseries>
options		FAST_CSW	# Fast context switch code	# <fast_csw>
options		HW_AST		# Hardware ast support		# <hw_ast>
options 	HW_FOOTPRINT	# Cache footprint support	# <hw_foot>
options 	MACH		# Standard Mach features	# <mach>
options		MACH_ASSERT	# Compile in assertions		# <test>
options		MACH_COMPAT	# Vendor syscall compatibility  # <mach>
options		MACH_CO_INFO	# Call-out queue info		# <co_info>
options		MACH_CO_STATS	# Call-out queue statistics	# <co_stats>
options		MACH_DEBUG	# IPC debugging interface	# <mdebug>
options 	MACH_DIRECTORY	# Mach namei support		# <md>
options		MACH_FASTLINK	# Fast symbolic links
options		MACH_FIXPRI	# Fixed priority threads	# <fixpri>
options		MACH_HOST	# Mach host (resource alloc.)	# <host>
options		MACH_IPC_SIGHACK	# Send bogus signals	# <ipc_sighack>
options		MACH_IPC_STATS	# Collect IPC statistics	# <ipc_stats>
options		MACH_IPC_TCACHE	# IPC Translation Cache		# <ipc_tcache>
options		MACH_IPC_WWA	# IPC Wakeup-When-Available	# <ipc_wwa>
options		MACH_IPC_XXXHACK	# Enable obsolete funcs	# <ipc_xxxhack>
options		MACH_KM         # Kernel monitoring support	# <km>
options 	MACH_KDB	# Kernel debugger support	# <debug>
options		MACH_LDEBUG	# Sanity-check simple locking	# <test>
options 	MACH_NP		# Kernel-based network IPC	# <np>
options		MACH_NBC	# No buffer cache		# <nbc>
options		MACH_PAGEMAP	# Paged-out page map hints	# <pm>
options 	MACH_RFS	# Remote file system support	# <rfs>
options		MACH_SCTIMES	# Dummy system calls for timing	# <sctimes>
options		MACH_NET	# Fast network access		# <mach>
options		MACH_VFS	# use vnodes			# <vfs,afs,nfs>
options		MACH_NFS	# sun's network file system	# <nfs>
options		MACH_AFS	# in-kernel andrew file system	# <afs>
options		MACH_OLD_VM_COPY # Old vm_copy technology	# <oldvmcopy>
options		SUN_RPC		# rpc support for nfs		# <nfs>
options		MACH_VMTP	# versatile msg trans. protocol	# <vmtp>
options		MACH_XP		# external pager support	# <mach>
options		MACH_XP_FPD	# copy data direct from user	# <mach>
options		MACH_DEVICE	# mach i/o support		# <mach_device>
options		MACH_EMULATION	# mach syscall emulation	# <me>
options		SIMPLE_CLOCK	# no hardware clock rollover	# <simple>
options		STAT_TIME	# Use statistical timing	# <!timing>
options		VICE		# ANDREW file system support 	# <vice>
options		XPR_DEBUG	# kernel tracing		# <debug>
options		MACH_DB		# new kernel debugger		# <db>
options		MULTICAST	# Class D addressing		# <ipmcast,vmtp>
options		IGMPROTO	# IGMP code			# <ipmcast,vmtp>
options		MULTICAST_AGENT	# Multicast Agent code		# <ipmcast>
options		TTLCONTROL	# New ioctl to set IP TTL	# <ipmcast,vmtp>

timezone	5 dst
options		MAXDSIZ = 33554432	# 32 Megabytes
maxusers	64		# <xlarge>
maxusers	50		# <large>
maxusers	32		# <medium>
maxusers	16		# <small>
maxusers	8		# <xsmall>
maxusers	2		# <bsmall>

#
#  Multi-processor selection
#
pseudo-device	cpus		64	# <multi64>
pseudo-device	cpus		32	# <multi32>
pseudo-device	cpus		16	# <multi16>
pseudo-device	cpus		1	# <!multi64,multi32,multi16>
#
#  CMU pseudo terminal service
#
pseudo-device	cmupty			# <!bsmall>
#
# VICE file system support
#
pseudo-device	vicefs	3		# <vice>
#
#  Ethernet (ARP)
#
pseudo-device	ether
#
#  CMU Front End service
#
pseudo-device	fe	1		# <fe>
#
#  INGRES lock device
#
pseudo-device	ild			# <ild>
#
#  INTERNET protocol
#
pseudo-device	inet
#
#   SL-IP
#
pseudo-device	sl			# <sl>
#
#  Network loopback device
#
pseudo-device	loop

#  UCB pseudo terminal service
#
pseudo-device	pty	80			# <!bsmall>
