#
# 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.
#
#######################################################################
#
#  STANDARD CONFIGURATION OPTIONS (select any combination)
#
#	debug   = extra kernel level debugging support
#	mach    = Mach support 
#
#  EXPERIMENTAL CONFIGURATION OPTIONS (select any combination, carefully)
#
#	nbc     = no buffer cache support
#	simple  = non-rollover clock support
#	timing  = precision timing support
#	host	= host resource control support
#	fixpri	= fixed priority threads
#
#  MULTI-PROCESSOR CONFIGURATION (select at most one)
#
#	multi16 = enable 16 multi-processors
#	multi32 = enable 32 multi-processors
#	multi48 = enable 48 multi-processors
#
#  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 for
#		 (e.g. for boot floppies)
#
#######################################################################
#  
#  Standard Mach Research Configurations:
#  -------- ---- -------- ---------------
#
#  These are the default configurations that can be used by most sites.
#  They are used internally by the Mach project.
#
#  MACH      = [mach multi16 medium debug]
#
#######################################################################
#
ident		NeXT

# obsolete timezone spec
options		TIMEZONE=0, PST=0

options		QUOTA		# 				# <quota>
options		INET
options		ABSOLUTETIME_SCALAR_TYPE
options		NEW_VM_CODE	#				# <newvm>
options		OLD_VM_CODE	#				# <!newvm>
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_COUNTERS	# counters			# <count>
options		MACH_DEBUG	# IPC debugging interface	# <mdebug>
options		MACH_FASTLINK	# Fast symbolic links
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_LDEBUG	# Sanity-check simple locking	# <test>
options 	MACH_NP		# Mach IPC support		# <np>
options		MACH_NBC	# No buffer cache		# <nbc>
options		REV_ENDIAN_FS	# Reverse Endian FS		# <revfs>
options		MACH_NET	# Fast network access		# <mach_net>
options		MACH_XP		# external pager support	# <xp>
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		SIMPLE_CLOCK	# don't assume fixed tick	# <simple_clock>
options		STAT_TIME	# Use statistical timing	# <!timing>
options		XPR_DEBUG	# kernel tracing		# <xpr_debug>
options		KDEBUG		# kernel tracing		# <kdebug>
options		DDM_DEBUG	# driverkit-style tracing	# <ddm_debug>
options		MACH_OLD_VM_COPY # Old vm_copy technology	# <!newvm>
options		NO_DIRECT_RPC	# for untyped mig servers	# 
options		IPX		# ipx stack 			# <ipx>
options		EON		# 				# <eon>
options		ISO		# ISO stack			# <iso>
options		LLC		# 802.2 support			# <llc>
options		LOOP		# loopback support		# <loop>
options		MROUTING	# multicast routing		# <mrouting>
options		NS		# Netware			# <ns>
options		PPP		# PPP				# <ppp>
options		ROUTING		# routing			# <routing>
options		TPIP		#				# <tpip>
options		TUN		#				# <tun>
options		VLAN		#				# <vlan>
options         IPDIVERT        # Divert sockets (for NAT)      # <ipdivert>
options         IPFIREWALL      # IP Firewalling (used by NAT)  # <ipfirewall>
#options        IPFIREWALL_VERBOSE      #                       # <ipfirewall>
options         IPFIREWALL_FORWARD      #Transparent proxy      # <ipfirewall>
options         IPFIREWALL_DEFAULT_TO_ACCEPT    # allow everything by default   # <ipfirewall>
options         IPFIREWALL_KEXT # Kernel extension              # <ipfirewall>
options		MULTICAST	# Internet Protocol Class-D	$
options		TCPDEBUG	# TCP debug			# <tcpdebug>
options		RANDOM_IP_ID	# random (not sequential) ip ids	# <randomipid>
options		TCP_DROP_SYNFIN	# Drop TCP packets with SYN+FIN set	# <tcpdrop_synfin>
options		ICMP_BANDLIM	# ICMP bandwidth limiting sysctl


#
#	4.4 general kernel 
#
options 	COMPAT_43	# 4.3 BSD compatibility		# <compat_43>
options 	DIAGNOSTIC	# diagnostics				# <diagnostic>
options		KTRACE		# ktrace support			# <ktrace>

#
#	4.4 filesystems 
#
options		FFS		# Fast Filesystem Support	# <ffs>
options		HFS		# HFS/HFS+ support		# <hfs>
options		FIFO		# fifo support			# <fifo>
options		UNION		# union_fs support		# <union>
options		FDESC		# fdesc_fs support		# <fdesc>
options		CD9660		# ISO 9660 CD-ROM support	# <cd9660>
options		VOLFS		# volfs support			# <volfs>
options		DEVFS		# devfs support			# <devfs>
options		SYNTHFS		# synthfs support		# <synthfs>

#
# NFS support
#
options		NFSCLIENT	# Be an NFS client		# <nfsserver>
options		NFSSERVER	# Be an NFS server		# <nfsclient>

#
# AppleTalk Support
#
options		NETAT		# AppleTalk support		# <netat>
options		AURP_SUPPORT    # AppleTalk Update Routing      # <netat>
#
# Machine Independent Apple Features
#
options		KERNSERV	# kernel_server intarface	# <kernserv>
options		MALLOCDEBUG	# kernel malloc debugging	# <mallocdebug>
options		DRIVERKIT 	# driverkit support		# <driverkit>
options		KERNOBJC	# Objective-C support		# <kernobjc>
options		OBJCTEST	# Objc internal test		# <objctest>
options		KERNEL_STACK	# MI kernel stack support	# <kernstack>
profile				# build a profiling kernel	# <profile>

#
#  Point-to-Point Protocol support
#
pseudo-device ppp 2						# <ppp>

#       
# IPv6 Support
#       
options         "INET6"         		# kernel IPv6 Support           # <inet6>
options         IPSEC                  		# IP security            	# <ipsec>
options         IPSEC_ESP              		# IP security            	# <ipsec>
options         "IPV6FIREWALL"         		# IPv6 Firewall Feature   	# <ipv6firewall>
options         "IPV6FIREWALL_DEFAULT_TO_ACCEPT"  #IPv6 Firewall Feature   	# <ipv6firewall>
options         "IPV6FIREWALL_VERBOSE" 		#IPv6 Firewall Feature   	# <ipv6firewall>

pseudo-device   gif     1		# <gif>
pseudo-device   dummy   2		# <dummy>
pseudo-device   faith   1		# <faith>
pseudo-device   stf 	1 		# <stf>

options			crypto			# <ipsec,crypto>

makeoptions	LIBDRIVER = "libDriver_kern.o"			# <libdriver>
makeoptions	LIBOBJC   = "libkobjc.o"			# <kernobjc>

maxusers	64		# <xlarge>
maxusers	50		# <large>
maxusers	32		# <medium>
maxusers	16		# <small>
maxusers	8		# <xsmall,msmall>
maxusers	2		# <bsmall>

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

#
#  Ethernet (ARP)
#
pseudo-device	ether
#
#  Network loopback device
#
pseudo-device	loop
#
#  UCB pseudo terminal service
#
pseudo-device	pty	128 init pty_init

#
# vnode device
pseudo-device	vndevice	4	init	vndevice_init

#
#
# packet filter device
#
pseudo-device	bpfilter	4	init	bpf_init

#
#  shim to "linux" mach disk drivers  (mach drivers must also be turned on)
#
# now using iokit disk shim, this is code is obsolete
#pseudo-device diskshim

pseudo-device	random		1	init	random_init

