[LWN Logo]
[Timeline]
# Linux kernel configuration system
# This version tracks CML1 changes up to 2.4.0-test10.
#
symbols source "kernel-symbols.cml"		# Configuration symbols
menus source "kernel-menus.cml"			# Menus
explanations source "kernel-complaints.cml"	# Requirement explanations

start main			# Start with the menu named 'main'
banner whoami			# Use the `welcome' text to ID the configurator
prefix "CONFIG_"		# Prepended to every symbol name at save time
condition trits on MODULES	# Only recognize trits when MODULES is on
warndepend EXPERIMENTAL		# Append (EXPERIMENTAL) to dependent queries

helpfile "/usr/src/linux/Documentation/Configure.help"

# The following defaults tune for the normal user's configuration experience.
# They're based on the presumption that most people will be configuring for 
# a desktop or server machine rather than a minimal kernel for an embedded
# system (which is what you'd get without these...). 
#
default NET from y		# What system doesn't need networking?
default INET from y		# Everything talks to the Internet
default UNIX from y		# X users need Unix-domain sockets
default MODULES from y		# People tend to get confused otherwise.
# We'd like to set these, but they're architecture-dependent 
#default KCORE_ELF from y	# Use modern object format
#default BINFMT_ELF from y	# Ditto...
#default PCI from y		# Everything has PCI now
#default PCI_NAMES from y	# The help advises this
#default PARPORT from m		# Most systems have printers

# Perhaps this should default on for 686 clones as well?
default MTRR from M686 or M686FXSR

# From fs/Config.in and fs/ncpfs/Config.in

# Conditions from elsewhere
unless EXPERIMENTAL suppress dependent 
	ADFS_FS	HFS_FS BFS_FS EFS_FS JFFS_FS 
	DEVFS_FS QNX4FS_FS AFFS_FS 
	NTFS_RW SYSV_FS_WRITE UDF_RW UFS_FS_WRITE
unless INET suppress CODA_FS NFS_FS SMB_FS NFSD
unless (IPX!=n or INET!=n) suppress NCP_FS
require ROOT_NFS <= IP_PNP
unless PPC or M68K suppress PROC_HARDWARE
unless PPC suppress PROC_DEVICETREE
unless SPARC suppress SUN_OPENPROMFS

default JFFS_FS_VERBOSE from 0
default SMB_NLS_REMOTE from ""

menu ufs # Linux file system options 
	QUOTA EXT2_FS? AUTOFS_FS? AUTOFS4_FS? ROMFS_FS? 
	PROC_FS		{PROC_HARDWARE PROC_DEVICETREE SUN_OPENPROMFS?}
	DEVFS_FS	{DEVFS_MOUNT DEVFS_DEBUG} 
	DEVPTS_FS 
	ADFS_FS?	{ADFS_FS_RW}
	JFFS_FS		{JFFS_FS_VERBOSE%}

menu lfs # Legacy Unix file systems 
	UFS_FS? {UFS_FS_WRITE} SYSV_FS? {SYSV_FS_WRITE} 
	BFS_FS? MINIX_FS? EFS_FS?

menu nfs # Network file systems
	CODA_FS? NFS_FS? {NFS_V3 ROOT_NFS} NFSD? {NFSD_V3}
	SMB_FS? {SMB_NLS_REMOTE$}
	NCP_FS? {ncpfs}

menu mfs # Microsoft file systems
	FAT_FS? {VFAT_FS? MSDOS_FS? {UMSDOS_FS?}} NTFS_FS? {NTFS_RW}

menu ofs # Other foreign file systems
	ISO9660_FS? {JOLIET} UDF_FS? {UDF_RW} AFFS_FS? HFS_FS? 
	CRAMFS? RAMFS? HPFS_FS? QNX4FS_FS? {QNX4FS_RW}

menu ncpfs # NCP filesystem configuration
	NCPFS_PACKET_SIGNING NCPFS_IOCTL_LOCKING
	NCPFS_STRONG NCPFS_NFS_NS NCPFS_OS2_NS NCPFS_SMALLDOS
	NCPFS_MOUNT_SUBDIR NCPFS_NDS_DOMAINS NCPFS_NLS NCPFS_EXTRAS

menu fs # File Systems
	ufs lfs nfs mfs ofs parttypes nls

# Local rules
require ROOT_NFS <= NFS_FS
require DEVPTS_FS <= UNIX98_PTYS
unless NET suppress nfs
unless NCP_FS!=n suppress ncpfs

# $ = if both y, y; if both m, m; if both n, n; otherwise n
derive SUNRPC from NFS_FS $ NFSD
derive LOCKD from NFS_FS $ NFSD
derive LOCKD_V4 from NFSD_V3 or NFS_V3

# From fs/nls/Config.in

default NLS_DEFAULT from "iso8859-1"

menu nls # National Language Support
	NLS_DEFAULT$
	NLS_CODEPAGE_437?
	NLS_CODEPAGE_737?
	NLS_CODEPAGE_775?
	NLS_CODEPAGE_850?
	NLS_CODEPAGE_852?
	NLS_CODEPAGE_855?
	NLS_CODEPAGE_857?
	NLS_CODEPAGE_860?
	NLS_CODEPAGE_861?
	NLS_CODEPAGE_862?
	NLS_CODEPAGE_863?
	NLS_CODEPAGE_864?
	NLS_CODEPAGE_865?
	NLS_CODEPAGE_866?
	NLS_CODEPAGE_869?
	NLS_CODEPAGE_874?
	NLS_CODEPAGE_932?
	NLS_CODEPAGE_936?
	NLS_CODEPAGE_949?
	NLS_CODEPAGE_950?
	NLS_ISO8859_1?
	NLS_ISO8859_2?
	NLS_ISO8859_3?
	NLS_ISO8859_4?
	NLS_ISO8859_5?
	NLS_ISO8859_6?
	NLS_ISO8859_7?
	NLS_ISO8859_8?
	NLS_ISO8859_9?
	NLS_ISO8859_14?
	NLS_ISO8859_15?
	NLS_KOI8_R?
	NLS_UTF8

derive NLS from JOLIET==y or FAT_FS!=n or NTFS_FS!=n 
				or NCPFS_NLS==y or SMB_FS==y
unless NLS!=n suppress nls

# From fs/partitions/Config.in

#
# These defaults are what will take effect
# if the user doesn't select EXPERT
#
default OSF_PARTITION from ALPHA
default MSDOS_PARTITION from ALPHA or ATARI or MAC or SGI_IP22 or SGI_IP27
default AMIGA_PARTITION from AMIGA
default MAC_PARTITION from MAC
default ACORN_PARTITION from ARCH_ACORN
default ACORN_PARTITION_ADFS from ARCH_ACORN
#default ACORN_PARTITION_CUMANA from ARCH_ACORN
default ACORN_PARTITION_ICS from ARCH_ACORN
default ACORN_PARTITION_POWERTEC from ARCH_ACORN
default ACORN_PARTITION_RISCIX from ARCH_ACORN
default ATARI_PARTITION from ATARI
default IBM_PARTITION from ARCH_S390
default SGI_PARTITION from SGI_IP22 or SGI_IP27
default ULTRIX_PARTITION from DECSTATION
default SUN_PARTITION from SPARC

menu parttypes # Partition types
	ACORN_PARTITION {
#		ACORN_PARTITION_CUMANA
		ACORN_PARTITION_ICS
		ACORN_PARTITION_ADFS
		ACORN_PARTITION_POWERTEC
		ACORN_PARTITION_RISCIX
	}
	OSF_PARTITION
	AMIGA_PARTITION
	ATARI_PARTITION
	IBM_PARTITION
	MAC_PARTITION
	MSDOS_PARTITION {
		BSD_DISKLABEL
		SOLARIS_X86_PARTITION
		UNIXWARE_DISKLABEL
	}
	SGI_PARTITION
	ULTRIX_PARTITION
	SUN_PARTITION
#unless EXPERT suppress parttypes

# From net/ax25/Config.in and drivers/net/hamradio/Config.in

unless NET suppress HAMRADIO

menu ax25 # AX.25 network device drivers
	MKISS? SIXPACK? BPQETHER? DMASCC?
	SOUNDMODEM? {soundmodem}
	SCC? {SCC_DELAY SCC_TRXECHO} 
	BAYCOM_SER_FDX? BAYCOM_SER_HDX? BAYCOM_PAR? BAYCOM_EPP? YAM?

menu soundmodem # Soundcard modem drivers
	SOUNDMODEM_SBC SOUNDMODEM_WSS 
	SOUNDMODEM_AFSK1200 SOUNDMODEM_AFSK2400_7 SOUNDMODEM_AFSK2400_8
	SOUNDMODEM_AFSK2666 SOUNDMODEM_HAPN4800 SOUNDMODEM_PSK4800
	SOUNDMODEM_FSK9600

menu hamradio # Amateur Radio protocols and drivers
	AX25? {AX25_DAMA_SLAVE NETROM? ROSE? ax25}

# From net/ipv4/Config.in and net/ipv4/netfilter/Config.in

# derive RTNETLINK from IP_ADVANCED_ROUTER
# derive NETLINK from IP_ADVANCED_ROUTER

menu ipv4 # IP Version 4 configuration
	IP_MULTICAST 
	IP_ADVANCED_ROUTER {
		IP_MULTIPLE_TABLES IP_ROUTE_FWMARK IP_ROUTE_NAT 
		IP_ROUTE_MULTIPATH IP_ROUTE_TOS IP_ROUTE_VERBOSE 
		IP_ROUTE_LARGE_TABLES
	}
	IP_PNP {IP_PNP_BOOTP IP_PNP_RARP} #IP_PNP_ARP IP_ROUTER
	NET_IPIP? NET_IPGRE? NET_IPGRE_BROADCAST 
	IP_MROUTE {IP_PIMSM_V1 IP_PIMSM_V2} 
	# IP_ALIAS 
	ARPD SYN_COOKIES SKB_LARGE #UDP_DELAY_CSUM
	ipv4_netfilter

unless EXPERIMENTAL and RTNETLINK suppress ARPD
#unless EXPERIMENTAL suppress dependent UDP_DELAY_CSUM
unless NETFILTER suppress IP_ROUTE_FWMARK
unless IP_MULTICAST suppress IP_MROUTE
unless IP_MULTICAST and NET_IPGRE!=n suppress NET_IPGRE_BROADCAST

menu ipv4_netfilter	# IP netfilter configuration
	IP_NF_CONNTRACK? {IP_NF_FTP?} IP_NF_QUEUE?
	IP_NF_IPTABLES? {
		IP_NF_MATCH_LIMIT? IP_NF_MATCH_MAC? IP_NF_MATCH_MARK?
		IP_NF_MATCH_MULTIPORT? IP_NF_MATCH_TOS? IP_NF_MATCH_STATE?
		IP_NF_MATCH_UNCLEAN? IP_NF_MATCH_OWNER? 
		IP_NF_FILTER? {IP_NF_TARGET_REJECT? IP_NF_TARGET_MIRROR?}
		IP_NF_NAT? {IP_NF_TARGET_MASQUERADE? IP_NF_TARGET_REDIRECT?}
		IP_NF_MANGLE? {IP_NF_TARGET_TOS? IP_NF_TARGET_MARK? 
		IP_NF_TARGET_LOG?}
	}
	IP_NF_COMPAT_IPCHAINS? {IP_NF_COMPAT_IPFWADM?}

unless NETFILTER suppress ipv4_netfilter
unless EXPERIMENTAL suppress dependent
	IP_NF_MATCH_UNCLEAN IP_NF_MATCH_OWNER IP_NF_TARGET_MIRROR
unless EXPERIMENTAL and NETLINK suppress IP_NF_QUEUE
unless IP_NF_CONNTRACK!=n suppress IP_NF_MATCH_STATE IP_NF_NAT
require (IP_NF_COMPAT_IPCHAINS==n) or (IP_NF_CONNTRACK==n) 
	explanation ipchains_complaint
derive IP_NF_NAT_NEEDED from 
	(IP_NF_NAT!=n) or (IP_NF_COMPAT_IPCHAINS!=n) or (IP_NF_COMPAT_IPFWADM!=n)

# From net/Config.h, net/khttpd/Config.in, net/ipx/Config.in

unless EXPERIMENTAL suppress dependent
	IPX IPV6 KHTTPD ATM IPX X25 LAPB LLC NET_DIVERT WAN_ROUTER
	NET_FASTROUTE NET_HW_FLOWCONTROL NET_SCHED # NET_PROFILE

#unless LLC suppress NETBEUI
unless ARCH_ACORN suppress ECONET
unless INET suppress ATM_MPOA ECONET KHTTPD

menu net # Networking options
	PACKET?		{PACKET_MMAP} 
	NETLINK		{RTNETLINK NETLINK_DEV?} 
	NETFILTER	{NETFILTER_DEBUG} 
	INET 		{ipv4}
	IPV6?		{ipv6} 
	FILTER UNIX? KHTTPD? 
	ATM		{ATM_CLIP {ATM_CLIP_NO_ICMP} ATM_LANE? {ATM_MPOA?}} 
	IPX? 		{IPX_INTERN SPX?}
	DECNET?		{decnet} 
	X25? LAPB? BRIDGE? LLC NET_DIVERT
	ECONET? 	{ECONET_AUNUDP ECONET_NATIVE} 
	WAN_ROUTER? NET_FASTROUTE NET_HW_FLOWCONTROL
	NET_SCHED 	{netsched} # NET_PROFILE
	IRDA?		{irda}

# From net/decnet/Config.in

unless EXPERIMENTAL suppress dependent DECNET_ROUTER

menu decnet # Decnet options
	DECNET_SIOCGIFCONF DECNET_ROUTER {DECNET_ROUTE_FWMARK}

# From net/ipv6/Config.in

unless IPV6!=n and NETLINK and RTNETLINK suppress IPV6_NETLINK

menu ipv6 # IPv6 options
	IPV6_EUI64 {IPV6_NO_PB} IPV6_NETLINK # RT6_POLICY IPV6_FIREWALL
	ipv6_netfilter

menu ipv6_netfilter	# IP netfilter configuration
	#IP6_NF_CONNTRACK? {IP6_NF_FTP?} IP6_NF_QUEUE?
	IP6_NF_IPTABLES? {
		IP6_NF_MATCH_LIMIT? # IP6_NF_MATCH_MAC? 
		IP6_NF_MATCH_MARK?
		# IP6_NF_MATCH_MULTIPORT? IP6_NF_MATCH_TOS? IP6_NF_MATCH_STATE?
		# IP6_NF_MATCH_UNCLEAN? IP6_NF_MATCH_OWNER? 
		IP6_NF_FILTER? # {IP6_NF_TARGET_REJECT? IP6_NF_TARGET_MIRROR?}
		# IP6_NF_NAT? {IP6_NF_TARGET_MASQUERADE? IP6_NF_TARGET_REDIRECT?}
		IP6_NF_MANGLE? {IP6_NF_TARGET_MARK?} #IP6_NF_TARGET_LOG?
	}

# From net/sched/Config.in

unless ATM suppress NET_SCH_ATM 
unless NETFILTER suppress NET_SCH_INGRESS

menu netsched # Traffic control configuration
	NET_SCH_CBQ? NET_SCH_CSZ? # NET_SCH_HPFQ? NET_SCH_HFCS?
	NET_SCH_ATM NET_SCH_PRIO? NET_SCH_RED? NET_SCH_SFQ?
	NET_SCH_TEQL? NET_SCH_TBF? NET_SCH_GRED?
	NET_SCH_DSMARK? NET_SCH_INGRESS? 
	NET_QOS {
		NET_ESTIMATOR 
		NET_CLS {
			NET_CLS_TCINDEX? NET_CLS_ROUTE4? NET_CLS_FW? 
			NET_CLS_U32? NET_CLS_RSVP? NET_CLS_RSVP6? NET_CLS_POLICE
		}
	}
unless NET_QOS suppress NET_CLS_RSVP NET_CLS_RSVP6

require NET_SCHED implies NETLINK==y and RTNETLINK==y

derive NET_CLS_ROUTE from NET_CLS_ROUTE4!=n

# From net/irda/Config.in, net/irda/ircomm/Config.in, 
#	net/irda/irlan/Config.in, net/irda/compressors/Config.in

menu irda # IrDA (infrared) support
	IRLAN? IRCOMM? IRDA_ULTRA 
	IRDA_OPTIONS		{IRDA_CACHE_LAST_LSAP IRDA_FAST_RR IRDA_DEBUG}
	IRDA_COMPRESSION	{IRDA_DEFLATE?}
	irda_drivers

# From drivers/net/irda/Config.in

unless EXPERIMENTAL suppress dependent SMC_IRCC_FIR
unless ISA or (ISAPNP!=n) suppress NSC_FIR      #nsc-ircc.c
unless ISA or (ISAPNP!=n) suppress WINBOND_FIR  #w83977af_ir.c
unless PCI suppress TOSHIBA_FIR                 #toshoboe.c
unless ISA suppress SMC_IRCC_FIR                #smc-ircc.c

# All these had a dep_tristate on CONFIG_IRDA
menu irda_drivers # Infrared-port device drivers
	# SIR device drivers
	IRTTY_SIR? IRPORT_SIR?
	# FIR device drivers
	NSC_FIR? WINBOND_FIR? TOSHIBA_FIR? SMC_IRCC_FIR?
	# Serial dongle support
	DONGLE {
		ESI_DONGLE? ACTISYS_DONGLE? TEKRAM_DONGLE? GIRBIL_DONGLE? 
		LITELINK_DONGLE? OLD_BELKIN_DONGLE?
	}

# From drivers/net/Config.in, drivers/acorn/net/Config.in

unless NETLINK suppress ETHERTAP
unless PARPORT!=n suppress dependent PLIP
unless HOTPLUG==y and PCMCIA!=n suppress dependent pcmcia_drivers
unless X86 or ALPHA or SPARC suppress 
	EQUALIZER ETHERTAP NET_SB1000 NET_ETHERNET FDDI PLIP 
	NET_RADIO TR WAN ARCNET
unless (S390==n) suppress EQUALIZER ETHERTAP NET_SB1000
	ethernet_lospeed ethernet_hispeed fddi_drivers PLIP SLIP PPP
	NET_RADIO fddi_drivers NET_FC WAN ARCNET ATALK NET_PCMCIA
unless X86 or ALPHA or (MIPS and DECSTATION and BAGET_MIPS) or PPC suppress 
	ISDN
unless S390 suppress CTC IUCV

menu net_drivers # Network device configuration
	DUMMY? BONDING? TUN EQUALIZER? ETHERTAP? NET_SB1000?
	NET_ETHERNET	{ethernet_lospeed ethernet_hispeed}
	FDDI		{fddi_drivers}
	PLIP?
	PPP?		{ppp_options}
	SLIP?		{slip_options}
	ISDN?		{isdn}
	NET_RADIO	{wlan_drivers}
	TR		{tokenring_drivers}
	NET_FC		{fiber_channel}
	WAN		{wan_drivers}
	ARCNET?		{arcnet_drivers}
	ATALK?		{appletalk_drivers}
	NET_PCMCIA	{pcmcia_drivers}
	CTC IUCV

# Low-speed Ethernet

unless EXPERIMENTAL suppress dependent 
	ELMC_II NI5010 AT1700 AC3200 DM9102 
	EEPRO100_PM LNE390 NE3210 RTL8129 ES3210 EPIC100 PPP_MULTILINK
unless OBSOLETE suppress EWRK3 FMV18X SEEQ8005 ZNET ETHERTAP

unless MCA suppress ELMC ELMC_II ULTRAMCA SKMC NE2_MCA
unless ISA suppress 
	NET_ISA eth_isa_drivers ISA3C515
	EL1 EL2 ELPLUS EL16 WD80x3 ULTRA NET_SB1000
unless ISA or ISAPNP!=n or EISA or MCA suppress EL3	# 3c509 source
unless EISA or PCI or CARDBUS!=n suppress VORTEX		# Vortex help screen
unless ISA or ISAPNP!=n or PCI suppress LANCE		# Lance source
unless ISA suppress ULTRA				# SMC-ULTRA
unless EISA suppress ULTRA32                      	# SMC-ULTRA32
unless PCI suppress NET_PCI eth_pci_drivers
unless PCI suppress dependent TULIP EEPRO100 NE2K_PCI
unless ISA suppress NI52	#No references to other busses in ni52.c
unless ISA suppress NI65	#No real references to other busses in ni65.c
unless ARM and ARCH_ACORN!=y suppress ARM_AM79C961A
unless ARM and ARCH_ACORN==y suppress ARM_ETHER1 ARM_ETHER3 ARM_ETHERH
unless PPC suppress MACE BMAC GMAC NCR885E OAKNET
unless ZORRO suppress ARIADNE ARIADNE2 A2065 HYDRA
unless MIPS_JAZZ suppress MIPS_JAZZ_SONIC
unless MIPS suppress SGISEEQ			# Guard was `SGI' in CML1
unless SGI_IP27 or IA64_SGI_SN1 suppress SGI_IOC3_ETH
unless X86 suppress ATP
unless X86 or ALPHA suppress NET_VENDOR_3COM LANCE NET_VENDOR_SMC
	NET_VENDOR_RACAL SKMC NET_POCKET
unless ISA or EISA or MCA suppress DEPCA	#depca.c
unless ISA or EISA or MCA suppress HP100
unless ISA or MCA suppress AT1700               #at1700.c
unless SPARC suppress HAPPYMEAL SUNBMAC SUNQE
unless DECSTATION suppress DECLANCE
unless BAGET_MIPS suppress BAGETLANCE BAGETBSM
unless PPC_8xx suppress SCC_ENET FEC_ENET PPC8xxSMC2 PPC8xxSCC
unless PPC_8260 suppress SCC_ENET FCC_ENET
unless AMIGA and PCMCIA!=n suppress APNE
unless APOLLO suppress APOLLO_ELPLUS
unless MAC suppress MAC8390 MACSONIC SMC9194 MAC89x0 MACMACE
unless MVME147 suppress MVME147_NET 
unless MVME16x suppress MVME16x_NET 
unless BVME6000 suppress BVME6000_NET
unless ATARI suppress ATARILANCE
unless SUN3X or SPARC suppress SUNLANCE
unless HP300 suppress HPLANCE
unless SUPERH suppress STNIC
unless ISA suppress NI5010			#ni5010.c
unless TQM860 or TQM860L or TQM8xxL suppress TQM_SMC2_CONSOLE

menu ethernet_lospeed # Ethernet (10 or 100Mbit)
	ARM_AM79C961A? ARM_ETHER1? ARM_ETHER3? ARM_ETHERH?	# ARM
	MACE? BMAC? GMAC? NCR885E? OAKNET?			# PPC
	ARIADNE? ARIADNE2? A2065? HYDRA?			# ZORRO
	MIPS_JAZZ_SONIC?					# MIPS_JAZZ
	SGISEEQ						# SGI	
	SGI_IOC3_ETH					# SGI_IP27
	STNIC						# SuperH
	SUNLANCE? HAPPYMEAL? SUNBMAC? SUNQE?		# Sun
	DECLANCE BAGETLANCE? BAGETBSM?			# MIPS
	SCC_ENET {SCC1_ENET {SCC2_ENET}} FEC_ENET	# PPC_8xx
	ENET_BIG_BUFFERS
	PPC8xxSMC2 {PPC8xx_ALTSMC2} 			# PPC_8xx
	PPC8xxSCC					# PPC_8xx
	TQM_SMC2_CONSOLE				# PPC_8xx
	FCC_ENET {FCC1_ENET {FCC2_ENET}}		# PPC_8260
	MAC8390 MACSONIC? MAC89x0? MACMACE		# MAC
	APNE?						# AMIGA_PCMCIA
	HPLANCE						# Generic M68K
	MVME147_NET? MVME16x_NET? BVME6000_NET?		# VME
	ATARILANCE? {ATARI_BIONET? ATARI_PAMSNET?}		# ATARI
	NET_VENDOR_3COM			{eth_3com_drivers}
	LANCE?
	NET_VENDOR_SMC			{eth_smc_drivers}
	NET_VENDOR_RACAL		{eth_racal_drivers}
	AT1700? DEPCA? HP100?
	NET_ISA				{eth_isa_drivers}
	SKMC? NE2_MCA? IBMLANA?
	NET_PCI				{eth_pci_drivers}
	NET_POCKET			{eth_pocket_drivers}

menu eth_3com_drivers # 3Com Ethernet cards
	EL1? EL2? ELPLUS?
	EL16? EL3? ISA3C515?
	ELMC? ELMC_II? VORTEX?
	APOLLO_ELPLUS?

menu eth_smc_drivers # SMC Ethernet cards
	WD80x3? ULTRAMCA? ULTRA? ULTRA32? SMC9194?

menu eth_racal_drivers # Racal-Interlan (Micom) NI cards
	NI5010? NI52? NI65?

menu eth_isa_drivers # Other ISA drivers
	E2100? EWRK3? EEXPRESS? EEXPRESS_PRO? FMV18X? 
	HPLAN_PLUS? HPLAN? ETH16I? NE2000? SEEQ8005? SK_G16?

menu eth_pci_drivers # EISA, VLB, PCI and on board controllers
	PCNET32? ADAPTEC_STARFIRE? AC3200?
	APRICOT? CS89x0? DE4X5? TULIP? DGRS? DM9102?
	EEPRO100? {EEPRO100_PM}
	LNE390? NE3210? NATSEMI NE2K_PCI? RTL8129?
	RTL8139? SIS900? TLAN? VIA_RHINE? ES3210? EPIC100?
	ZNET

unless PARPORT!=n suppress dependent eth_pocket_drivers

menu eth_pocket_drivers # Pocket Ethernet adapters
	ATP? DE600? DE620?

# High-speed Ethernet

unless PCI suppress YELLOWFIN			#yellowfin.c
unless PCI suppress ACENIC			#acenic.c
unless PCI suppress SK98LIN			#sk98lin/skge.c

unless EXPERIMENTAL suppress dependent YELLOWFIN PPPOE
unless SPARC suppress MYRI_SBUS
unless INET suppress HIPPI

menu ethernet_hispeed # Ethernet (1000 Mbit)
	YELLOWFIN? ACENIC? {ACENIC_OMIT_TIGON_I} SK98LIN? MYRI_SBUS?

# FDDI

unless EISA or PCI suppress DEFXX       # From defxx.c
unless PCI suppress SKFP		# PCI only, according to skfp/skfddi.c
unless PCI suppress ROADRUNNER		# rrunner.c

menu fddi_drivers # FDDI driver support
	DEFXX SKFP? HIPPI {ROADRUNNER? {ROADRUNNER_LARGE_RINGS}}

# PPP?

menu ppp_options # PPP? options
	PPP_MULTILINK PPP_ASYNC? PPP_SYNC_TTY? PPP_DEFLATE? PPP_BSDCOMP?
	PPPOE?

#require PPP_BSDCOMP <= m explanation bsdcomp_complaint

# SLIP

menu slip_options # SLIP? options
	SLIP_COMPRESSED SLIP_SMART SLIP_MODE_SLIP6

# Wireless LAN

unless INET suppress dependent STRIP
unless EXPERIMENTAL suppress dependent AIRONET4500_ISA AIRONET4500_I365
unless PCI suppress AIRONET4500_PCI
unless ISA suppress AIRONET4500_ISA
unless ISA suppress WAVELAN		# brief reference to MCA, but Doc.help
					# and wavelan.{c|txt} say ISA only.
unless ISA suppress ARLAN		# arlan.c

menu wlan_drivers # Wireless LAN
	STRIP? 
	WAVELAN?
	ARLAN? AIRONET4500? {
		AIRONET4500_NONCS? {
			AIRONET4500_PNP AIRONET4500_PCI AIRONET4500_ISA 
			AIRONET4500_I365 AIRONET4500_PROC?
		}
	}

require AIRONET4500_PROC <= m explanation aironet_complaint

# Fiber Channel

unless SCSI!=n suppress dependent IPHASE5526
unless EXPERIMENTAL suppress dependent RCPCI SHAPER
unless PCI suppress RCPCI		#rcpci45.c

menu fiber_channel # Fiber Channel drivers
	IPHASE5526? RCPCI? SHAPER?

# From drivers/net/wan/Config.in

unless OBSOLETE suppress WANPIPE_PPP WANPIPE_X25
unless EXPERIMENTAL suppress dependent CYCLADES_SYNC

unless ISA suppress HOSTESS_SV11	#http://www.comtrol.co.uk/sv24.htm#sv11
unless ISA suppress COSA		# http://www.pavoucek.cz/cosa.html
unless PCI suppress LANMEDIA		# lmc/lmc_main.c
unless ISA suppress COMX_HW_LOCOMX	# 98% sure from comx-hw-locomx.c
unless ISA suppress COMX_HW_MIXCOM	# 98% sure from comx-hw-mixcom.c
unless ISA suppress SEALEVEL_4021	# http://www.sealevel.com/selection.htm
unless ISA or PCI suppress SDLA         # sdla*.c; <=s508 is ISA, but there
					# appears to be support for PCI s514
unless ISA suppress CYCLADES_SYNC	# 98% sure from cycx*
unless (CYCLADES_SYNC!=n) suppress CYCLOMX_X25
unless ISA suppress SBNI		# sbni.c

unless WAN_ROUTER!=n suppress WAN_ROUTER_DRIVERS
unless LAPB!=n suppress dependent COMX_PROTO_LAPB

default DLCI_COUNT from 24
default DLCI_MAX from 8

default WANPIPE_CARDS		from	1

menu wan_drivers # Wan drivers
	HOSTESS_SV11? COSA? LANMEDIA?
	COMX? {
		COMX_HW_LOCOMX? COMX_HW_MIXCOM? 
		COMX_PROTO_PPP? COMX_PROTO_LAPB? COMX_PROTO_FR?
	}
	SEALEVEL_4021? 
	SYNCLINK_SYNCPPP
	DLCI?			{DLCI_COUNT% DLCI_MAX% SDLA?}
	WAN_ROUTER_DRIVERS	{wan_router_drivers}

unless (COMX_HW_LOCOMX!=n) or (COMX_HW_MIXCOM!=n) suppress COMX_PROTO_PPP
unless (COMX_HW_LOCOMX!=n) or (COMX_HW_MIXCOM!=n) suppress COMX_PROTO_LAPB
unless (COMX_HW_LOCOMX!=n) or (COMX_HW_MIXCOM!=n) suppress COMX_PROTO_FR

menu wan_router_drivers # WAN router drivers
	VENDOR_SANGOMA? { 
		WANPIPE_CARDS% WANPIPE_CHDLC WANPIPE_FR WANPIPE_PPP WANPIPE_X25
	}
	CYCLADES_SYNC? {CYCLOMX_X25}
	LAPBETHER? X25_ASY? SBNI?

require LAPBETHER <= LAPB and LAPBETHER <= X25
require X25_ASY <= LAPB and LAPBETHER <= X25

# There is no way to detect a Comtrol sv11 - force it modular for now.
require HOSTESS_SV11 <= m explanation hostess_complaint
# The COSA/SRP driver has not been tested as non-modular yet.
require COSA <= m explanation cosa_complaint
# There is no way to detect a Sealevel - force it modular for now.
require SEALEVEL_4021 <= m explanation sealevel_complaint
# This constraint is not explained
require SYNCLINK_SYNCPPP <= m
# SDLA must be modular if DLCI is
require SDLA <= DLCI

# From drivers/net/tokenring/Config.in

unless MCA suppress MADGEMC
unless ISA or ISAPNP!=n or MCA or PCMCIA!=n suppress IBMTR	#ibmtr.c
unless PCI suppress IBMOL				#olympic.txt
unless ISA or PCI suppress TMS380TR			#tms380tr.c
unless ISA or MCA suppress SMCTR			#smctr.c

menu tokenring_drivers # Token Ring devices
		IBMTR? IBMOL? TMS380TR? {TMSPCI? ABYSS? MADGEMC?} SMCTR?

# From drivers/net/arcnet/Config.in

unless ISA suppress ARCNET_COM20020_ISA 
unless PCI suppress ARCNET_COM20020_PCI
unless ISA suppress ARCNET_COM90xx	# com90xx.c
unless ISA suppress ARCNET_COM90xxIO	# com90io.c
unless ISA suppress ARCNET_RIM_I	# arc-rimi.c

menu arcnet_drivers # ARCnet support
	ARCNET_1201? ARCNET_1051? ARCNET_RAW? ARCNET_COM90xx? ARCNET_COM90xxIO?
	ARCNET_RIM_I? ARCNET_COM20020? {ARCNET_COM20020_ISA? ARCNET_COM20020_PCI?}

# From drivers/net/pcmcia/Config.in

unless ARCNET!=n suppress dependent ARCNET_COM20020_CS
unless CARDBUS!=n suppress PCMCIA_3C575 PCMCIA_TULIP
unless ISA or PCI or PNP!=n or PCMCIA!=n suppress AIRONET4500_NONCS   #Configure.help
unless PNP!=n suppress AIRONET4500_PNP	#Configure.help
unless PCMCIA!=n suppress AIRONET4500_I365	#Configure.help
unless TR suppress PCMCIA_XIRTULIP
unless IBMTR!=y suppress PCMCIA_IBMTR

menu pcmcia_drivers # PCMCIA network device support
	PCMCIA_3C589? PCMCIA_3C574? PCMCIA_FMVJ18X? PCMCIA_PCNET? PCMCIA_NMCLAN?
	PCMCIA_SMC91C92? PCMCIA_XIRC2PS? ARCNET_COM20020_CS? PCMCIA_IBMTR?
	PCMCIA_3C575? PCMCIA_TULIP? PCMCIA_XIRTULIP? 
	NET_PCMCIA_RADIO {
		PCMCIA_RAYCS? PCMCIA_NETWAVE? PCMCIA_WAVELAN? AIRONET4500_CS?
	}

require PCMCIA_3C575 <= m
require PCMCIA_TULIP <= m
derive PCMCIA_NETCARD from PCMCIA_3C589==y or PCMCIA_3C574==y or 
     				PCMCIA_FMVJ18X==y or PCMCIA_PCNET==y or
     				PCMCIA_NMCLAN==y or PCMCIA_SMC91C92==y or
     				PCMCIA_XIRC2PS==y or PCMCIA_RAYCS==y or
     				PCMCIA_NETWAVE==y or PCMCIA_WAVELAN==y

# From drivers/net/appletalk/Config.in

unless ISA suppress LTPC		# ltpc.c
unless ISA or MCA suppress COPS		# cops.c

menu appletalk_drivers # Appletalk devices
	APPLETALK {
		LTPC? 
		COPS? {COPS_DAYNA COPS_TANGENT}
		IPDDP? {IPDDP_ENCAP IPDDP_DECAP}
	}

# From drivers/mtd

unless PPC suppress MTD_RPXLITE
unless PCI suppress MTD_PMC551

default MTDRAM_TOTAL_SIZE from 4096
default MTDRAM_ERASE_SIZE from 128
default MTD_PHYSMAP_START from 0x80000000
default MTD_PHYSMAP_LEN   from 0x40000000

menu mtd 
	MTD_DOC1000 MTD_DOC2000 MTD_DOC2001 
	MTD_SLRAM 
	MTD_PMC551 {MTD_PMC551_BUGFIX}
	MTD_MTDRAM {MTDRAM_TOTAL_SIZE% MTDRAM_ERASE_SIZE%}
	mtd_driver_legend
	MTD_CFI {
		MTD_CFI_INTELEXT MTD_CFI_AMDSTD 
		MTD_PHYSMAP {MTD_PHYSMAP_START@ MTD_PHYSMAP_LEN@}
		mtd_mapping_legend
		MTD_MIXMEM MTD_OCTAGON MTD_NORA MTD_RPXLITE MTD_VMAX
	}
	mtd_translation_legend
	MTD_BLOCK MTD_CHAR
	FTL {NFTL {NFTL_RW}}

derive MTD_DOCPROBE from MTD_DOC2000 | MTD_DOC2001

# These will later become config-options
#derive MTD_JEDEC from n
#derive MTD_RAM from n
#derive MTD_ROM from n
#unless MTD_JEDEC suppress dependent MTD_MIXMEM MTD_OCTAGON MTD_VMAX

# From drivers/block/Config.in, drivers/block/paride/Config.in,
# and drivers/acorn/block/Config.in

unless AMIGA suppress AMIGA_FLOPPY BLK_DEV_GAYLE
unless ATARI suppress ATARI_FLOPPY BLK_DEV_FALCON_IDE ATARI_ACSI
unless ARCH_ACORN suppress BLK_DEV_IDE_ICSIDE BLK_DEV_IDE_RAPIDE 
unless MAC suppress MAC_FLOPPY
unless MAC and EXPERIMENTAL suppress BLK_DEV_SWIM_IOP BLK_DEV_MAC_IDE
unless PPC or ARM suppress BLK_DEV_SL82C105
unless PPC suppress BLK_DEV_IDE_PMAC	# In CML1, PMAC also suppressed this
unless X86 or IA64 suppress BLK_DEV_PIIX
unless X86 suppress BLK_DEV_HD_ONLY BLK_DEV_SIS5513
unless ARCH_ARCA5K suppress 
	BLK_DEV_FD1772 BLK_DEV_MFM BLK_DEV_MFM_AUTODETECT
unless S390 suppress DASD
unless (S390==n) suppress BLK_DEV_FD
unless ZORRO suppress BLK_DEV_BUDDHA AMIGA_Z2RAM
unless ISAPNP==y suppress BLK_DEV_ISAPNP
unless IDE suppress ide_blockdevs
unless PCI suppress BLK_DEV_RZ1000 BLK_DEV_IDEPCI BLK_CPQ_DA BLK_DEV_DAC960
unless MCA suppress BLK_DEV_PS2
unless EXPERIMENTAL suppress dependent 
	IDEDMA_NEW_DRIVE_LISTINGS BLK_DEV_OPTI621 
	BLK_DEV_PDC4030 BLK_DEV_BUDDHA
unless ISA and OBSOLETE suppress BLK_DEV_XD

unless NET suppress BLK_DEV_NBD

menu block_devices # Block devices
	# Floppies
	BLK_DEV_FD? 
	AMIGA_FLOPPY? ATARI_FLOPPY? MAC_FLOPPY BLK_DEV_SWIM_IOP 
	BLK_DEV_FD1772?
	ide_blockdevs 
	BLK_DEV_PS2? AMIGA_Z2RAM?
	ATARI_ACSI? {ACSI_MULTI_LUN ATARI_SLM?}			# Atari
	BLK_CPQ_DA?
	BLK_DEV_MFM? {BLK_DEV_MFM_AUTODETECT}			# Acorn
	add_block_devices
	DASD {
		DASD_ECKD
		# DASD_CKD
		DASD_MDSK
	}

menu ide_blockdevs	# IDE block devices
	BLK_DEV_IDE? BLK_DEV_HD_ONLY ide_options ide_chipsets
	IDE_CHIPSETS {other_ide_chipsets}
	BLK_DEV_IDE_PMAC {BLK_DEV_IDEDMA_PMAC {IDEDMA_PMAC_AUTO}}	# Mac
	BLK_DEV_IDE_ICSIDE {BLK_DEV_IDEDMA_ICS {IDEDMA_ICS_AUTO}}
	IDEDMA_IVB
	BLK_DEV_IDE_RAPIDE 
	BLK_DEV_GAYLE {BLK_DEV_IDEDOUBLER?}
	BLK_DEV_BUDDHA BLK_DEV_FALCON_IDE BLK_DEV_MAC_IDE

# FIXME: the 2.4.0-test3 code includes these, which look like no-ops
#    define_bool CONFIG_BLK_DEV_IDEDISK_VENDOR n
#    dep_mbool '    Fujitsu Vendor Specific' CONFIG_BLK_DEV_IDEDISK_FUJITSU $CONFIG_BLK_DEV_IDEDISK_VENDOR
#    dep_mbool '    IBM Vendor Specific' CONFIG_BLK_DEV_IDEDISK_IBM $CONFIG_BLK_DEV_IDEDISK_VENDOR
#    dep_mbool '    Maxtor Vendor Specific' CONFIG_BLK_DEV_IDEDISK_MAXTOR $CONFIG_BLK_DEV_IDEDISK_VENDOR
#    dep_mbool '    Quantum Vendor Specific' CONFIG_BLK_DEV_IDEDISK_QUANTUM $CONFIG_BLK_DEV_IDEDISK_VENDOR
#    dep_mbool '    Seagate Vendor Specific' CONFIG_BLK_DEV_IDEDISK_SEAGATE $CONFIG_BLK_DEV_IDEDISK_VENDOR
#    dep_mbool '    Western Digital Vendor Specific' CONFIG_BLK_DEV_IDEDISK_WD $CONFIG_BLK_DEV_IDEDISK_VENDOR
#    define_bool CONFIG_BLK_DEV_COMMERIAL n
#    dep_mbool '    TiVo Commerial Application Specific' CONFIG_BLK_DEV_TIVO $CONFIG_BLK_DEV_COMMERIAL
#
# if [ "$CONFIG_BLK_DEV_TIVO" = "y" ]; then
#   define_bool CONFIG_DMA_NONPCI y
# else
#   define_bool CONFIG_DMA_NONPCI n
# fi

menu ide_options # IDE options -- see Documentation/ide.txt for help/info
	BLK_DEV_HD_IDE BLK_DEV_IDEDISK? IDEDISK_MULTI_MODE BLK_DEV_IDECS? 
	BLK_DEV_IDECD? BLK_DEV_IDETAPE? BLK_DEV_IDEFLOPPY? BLK_DEV_IDESCSI?

menu ide_chipsets # IDE chipset support/bugfixes
	BLK_DEV_CMD640 		{BLK_DEV_CMD640_ENHANCED} 
	BLK_DEV_ISAPNP
	BLK_DEV_RZ1000
	BLK_DEV_IDEPCI {
		IDEPCI_SHARE_IRQ
		BLK_DEV_IDEDMA_PCI {
			IDEDMA_PCI_AUTO
			IDEDMA_NEW_DRIVE_LISTINGS 
			IDEDMA_PCI_WIP 
			BLK_DEV_ALI15X3
			BLK_DEV_AMD7409		{AMD7409_OVERRIDE} 
			BLK_DEV_HPT34X		{HPT34X_AUTODMA}
			BLK_DEV_HPT366
			BLK_DEV_PIIX 		{PIIX_TUNING}
			BLK_DEV_NS87415 
			BLK_DEV_PDC202XX	{PDC202XX_BURST} 
			BLK_DEV_OSB4
			BLK_DEV_SIS5513
			BLK_DEV_SLC90E66
			BLK_DEV_TRM290
			BLK_DEV_VIA82CXXX
		}
		BLK_DEV_OFFBOARD
		BLK_DEV_AEC6210		{AEC6210_TUNING} 
		BLK_DEV_CMD64X		{CMD64X_RAID}
		BLK_DEV_CY82C693
		BLK_DEV_CS5530 
		BLK_DEV_OPTI621 
		BLK_DEV_SL82C105
	}

# Other chipset dependencies
unless IDEDMA_PCI_EXPERIMENTAL suppress 
	IDEDMA_PCI_WIP BLK_DEV_NS87415 BLK_DEV_TRM290
unless IDEDMA_PCI_WIP suppress AMD7409_OVERRIDE CMD64X_RAID HPT34X_AUTODMA
unless IDEDMA_PCI_AUTO suppress PIIX_TUNING

menu other_ide_chipsets # Other IDE chipset support (most need boot parameters)
	BLK_DEV_4DRIVES BLK_DEV_ALI14XX BLK_DEV_DTC2278 BLK_DEV_HT6560B
	BLK_DEV_PDC4030 BLK_DEV_QD6580 BLK_DEV_UMC8672

default BLK_DEV_RAM_SIZE from 4096

menu add_block_devices # Additional block devices
	BLK_DEV_LOOP?
	BLK_DEV_NBD? 
	BLK_DEV_MD?	{
		MD_LINEAR? MD_RAID0? MD_RAID1? MD_RAID5?
		MD_BOOT AUTODETECT_RAID
	}
	BLK_DEV_DAC960?
	BLK_DEV_RAM?	{BLK_DEV_RAM_SIZE% BLK_DEV_INITRD}
	BLK_DEV_XD?
	PARIDE? 		{paride_devices}

unless BLK_DEV_IDE==n suppress BLK_DEV_HD_ONLY
unless BLK_DEV_IDE!=n suppress ide_options ide_chipsets other_ide_chipsets
unless BLK_DEV_IDEDISK==y suppress IDEDISK_MULTI_MODE BLK_DEV_PDC4030

unless BLK_DEV_IDE!=n suppress BLK_DEV_IDE_PMAC BLK_DEV_IDE_ICSIDE 

require BLK_DEV_IDEDISK <= BLK_DEV_IDE
require BLK_DEV_IDECS <= BLK_DEV_IDE and BLK_DEV_IDECS <= PCMCIA
require BLK_DEV_IDECD <= BLK_DEV_IDE
require BLK_DEV_IDETAPE <= BLK_DEV_IDE
require BLK_DEV_IDEFLOPPY <= BLK_DEV_IDE
require BLK_DEV_IDESCSI <= BLK_DEV_IDE

derive IDEDMA_PCI_EXPERIMENTAL from EXPERIMENTAL and BLK_DEV_IDEDMA_PCI
derive BLK_DEV_IDEDMA from BLK_DEV_IDEDMA_PCI or 
	BLK_DEV_IDEDMA_PMAC or BLK_DEV_IDEDMA_ICS or
	(SPARC64 and PCI)
derive IDEDMA_AUTO from IDEDMA_PCI_AUTO or IDEDMA_PMAC_AUTO or IDEDMA_ICS_AUTO
	or (SPARC64 and PCI)

derive BLK_DEV_IDE_MODES from 
	IDE_CHIPSETS or	BLK_DEV_AEC6210 or BLK_DEV_ALI15X3 or 
	BLK_DEV_AMD7409 or BLK_DEV_CMD640 or BLK_DEV_CMD64X or 
	BLK_DEV_CS5530 or BLK_DEV_CY82C693 or BLK_DEV_HPT34X or 
	BLK_DEV_HPT366 or BLK_DEV_IDE_PMAC or BLK_DEV_OPTI621 or
	BLK_DEV_OSB4 or BLK_DEV_PDC202XX or BLK_DEV_PIIX or 
	BLK_DEV_SIS5513 or BLK_DEV_SLC90E66 or BLK_DEV_SL82C105 or 
	(SPARC64 and PCI)
derive BLK_DEV_HD from BLK_DEV_HD_IDE or BLK_DEV_HD_ONLY

unless MD_LINEAR!=n or MD_RAID0!=n or MD_RAID1!=n or MD_RAID5!=n 
	suppress MD_BOOT AUTODETECT_RAID

unless BLK_DEV_IDEDMA_PCI or BLK_DEV_IDEDMA_PMAC or BLK_DEV_IDEDMA_ICS 
	suppress IDEDMA_IVB

# From drivers/block/paride/Config.in

# The parallel-port IDE support (ppIDE) doesn't need PARPORT, but if PARPORT
# is configured as a module, ppIDE must also be a module.  This rule replaces
# the bogus CONFIG_PARIDE_PARPORT option that controlled the choices 
# given to the user in the old language.
prohibit (PARPORT==m) and (PARIDE==y)

menu paride_devices # Parallel-port IDE devices
	# Parallel IDE high-level drivers
	PARIDE_PD? PARIDE_PCD? PARIDE_PF? PARIDE_PT? PARIDE_PG? 
	# Parallel IDE protocol modules
	PARIDE_ATEN? PARIDE_BPCK? PARIDE_COMM? PARIDE_DSTR? PARIDE_FIT2? PARIDE_FIT3?
	PARIDE_EPAT? PARIDE_EPIA? PARIDE_FRIQ? PARIDE_FRPW? PARIDE_KBIC? PARIDE_KTTI?
	PARIDE_ON20? PARIDE_ON26?

# From drivers/char/Config.in

unless X86 or SUPERH or IA64 suppress VIDEO_SELECT MDA_CONSOLE
unless X86 or (ALPHA and VT)
		or (MIPS and VT and (SGI_IP22==n) and (DECSTATION==n)) 
		or (PPC_4xx or PPC_8xx)
		or (ARM and ARCH_ACORN and ARCH_EBSA110)
	suppress VGA_CONSOLE
unless SPARC or SUN3X suppress PROM_CONSOLE
unless SGI_IP22 suppress SGI_PROM_CONSOLE SGI_NEWPORT_CONSOLE
unless MIPS suppress SGI_NEWPORT_GFX
unless X86 or (MIPS and VT and (SGI_IP22==n) and (DECSTATION==n)) 
		or (ALPHA and VT) or (PPC_4xx or PPC_8xx) or HP300
	suppress FB

menu console	# Console drivers
	VGA_CONSOLE VIDEO_SELECT MDA_CONSOLE? 
	PROM_CONSOLE SGI_PROM_CONSOLE SGI_NEWPORT_CONSOLE? SGI_NEWPORT_GFX?
	FB {framebuffer}

default FB from M68K

unless EXPERIMENTAL suppress dependent CYZ_INTR ISI ATARI_DSP56K
unless EXPERT suppress SERIAL_EXTENDED SERIAL_NONSTANDARD
unless ARCH_ACORN and SERIAL!=n suppress ATOMWIDE_SERIAL DUALSP_SERIAL
unless MIPS32 suppress DZ # MIPS_KEYBOARD MIPS_MOUSE
unless MIPS32 and TC suppress ZS 
unless ATARI suppress ATARI_MFPSER ATARI_SCC ATARI_MIDI ATARI_DSP56K 
unless AMIGA suppress AMIGA_BUILTIN_SERIAL
unless AMIGA_PCMCIA suppress WHIPPET_SERIAL
unless MIPS suppress SGI_SERIAL
unless MAC suppress MAC_SCC
unless HP300 and DIO suppress HPDCA
unless SUN3X suppress SUN3X_ZS
unless MVME147 suppress MVME147_SCC
unless MVME16x suppress SERIAL167 MVME162_SCC
unless BVME6000 suppress BVME6000_SCC
unless M68K suppress USERIAL
unless SUPERH suppress SH_SCI
unless SPARC64 and SBUS suppress SAB82532
unless FOOTBRIDGE suppress SERIAL_21285

default UNIX98_PTY_COUNT from 256 range 0-2048

menu cdevs	# Character devices
	VT		{VT_CONSOLE} 
	SERIAL?		{SERIAL_CONSOLE ATOMWIDE_SERIAL? DUALSP_SERIAL?}
	SERIAL_EXTENDED {
		SERIAL_MANY_PORTS SERIAL_SHARE_IRQ 
		SERIAL_DETECT_IRQ SERIAL_MULTIPORT HUB6
	} 
	SERIAL_NONSTANDARD { 
		COMPUTONE? ROCKETPORT?
		CYCLADES? {CYZ_INTR} 
		DIGIEPCA? DIGI? ESPSERIAL? MOXA_INTELLIO? MOXA_SMARTIO?
		ISI? SYNCLINK? N_HDLC? RISCOM8? 
		SPECIALIX? {SPECIALIX_RTSCTS}
		SX? STALDRV
		RIO {RIO_OLDPCI}
		STALLION? ISTALLION? 
	}
	MVME147_SCC SERIAL167 MVME162_SCC BVME6000_SCC	# VME
	DZ ZS #MIPS_KEYBOARD MIPS_MOUSE			# MIPS only
	ATARI_MFPSER? ATARI_SCC? {ATARI_SCC_DMA}		# ATARI
	ATARI_MIDI? ATARI_DSP56K? 
	WHIPPET_SERIAL?					# AMIGA
	SGI_SERIAL					# MIPS
	MAC_SCC?					# MAC
	HPDCA?						# M68K
	SUN3X_ZS	{SUN_KEYBOARD}			# SUN3X
	USERIAL						# M68K
	AMIGA_BUILTIN_SERIAL?				# AMIGA
	SAB82532?					# Sun Ultra
	SH_SCI?						# SuperH
	SERIAL_21285 {
		SERIAL_21285_OLD SERIAL_21285_CONSOLE
	}
	UNIX98_PTYS	{UNIX98_PTY_COUNT%}
	console
	pcmcia_chardevs
	I2C?		{i2c}
	VIDEO_DEV?	{video}
	graphics
	char_devs_misc
	PRINTER?		{LP_CONSOLE} 
	PPDEV?
	mice
	JOYSTICK?	{joysticks}
	qic

#require RIO or SX implies GENERIC_SERIAL== (RIO | SX)
unless VT suppress VGA_CONSOLE
unless DIGIEPCA==n suppress DIGI
unless PARPORT!=n suppress dependent PRINTER LP_CONSOLE PPDEV
require ISI <= m
require SYNCLINK <= m
require N_HDLC <= m

# The nasty part of this expression is a direct translation of the CML1
# The structure of the port file suggests that it's not really necessary. 
#unless (M68K==n) or APOLLO or (AMIGA or ATARI or MAC or HP300 or SUN3X) and
#		 (ATARI_MFPSER or ATARI_SCC or ATARI_MIDI or MAC_SCC
#			or AMIGA_BUILTIN_SERIAL or GVPIOEXT 
#			or MULTIFACE_III_TTY or HPDCA or SUN3X_ZS or SGI)
#	suppress SERIAL_CONSOLE

# from drivers/i2c/Config.in

unless PARPORT!=n suppress dependent I2C_PHILIPSPAR

menu i2c	# I2C? support
	I2C_ALGOBIT? {I2C_PHILIPSPAR? I2C_ELV? I2C_VELLEMAN?} 
	I2C_ALGOPCF? {I2C_ELEKTOR?} I2C_CHARDEV?

# From drivers/char/Config.in, continued

unless ADB suppress ADBMOUSE
unless AMIGA suppress AMIGAMOUSE 
unless ATARI suppress ATARIMOUSE 
unless SUN3X_ZS suppress SUN_MOUSE

menu mice	# Mice
	BUSMOUSE? {ATIXL_BUSMOUSE? LOGIBUSMOUSE? MS_BUSMOUSE? ADBMOUSE?} 
	AMIGAMOUSE? ATARIMOUSE? SUN_MOUSE
	MOUSE? {PSMOUSE CT82C710_MOUSE? PC110_PAD?}

require (AMIGA and (AMIGAMOUSE==n)) implies BUSMOUSE == y
require (ATARI and (ATARIMOUSE==n)) implies BUSMOUSE == y
require (SUN3X and (SUN_MOUSE==n)) implies BUSMOUSE == y

# from drivers/char/joystick/Config.in

unless PARPORT!=n suppress INPUT_GAMECON INPUT_DB9 INPUT_TURBOGRAFX
unless AMIGA suppress INPUT_AMIGA

menu joysticks	# Joystick support
	gameports_legend
	INPUT_NS558? INPUT_LIGHTNING? INPUT_PCIGAME?
	port_joystick_legend
	INPUT_ANALOG? INPUT_ASSASSIN? INPUT_ADI? INPUT_COBRA? INPUT_GF2K?
	INPUT_GRIP? INPUT_INTERACT? INPUT_TMDC? INPUT_SIDEWINDER?
	serial_support_legend
	INPUT_SERPORT
	serial_joystick_legend
	INPUT_WARRIOR? INPUT_MAGELLAN? INPUT_SPACEORB? INPUT_SPACEBALL?
	INPUT_IFORCE_232?
	parallel_joystick_legend
	INPUT_DB9? INPUT_GAMECON? INPUT_TURBOGRAFX? 
	system_joystick_legend
	INPUT_AMIGA?

derive INPUT_IFORCE from INPUT_IFORCE_232

# From drivers/char/Config.in and drivers/char/ftape/Config.in, continued

default FT_ALPHA_CLOCK from 0

unless OBSOLETE suppress qic
unless WIZARD and QIC02_TAPE!=n suppress QIC02_DYNCONF
unless EXPERIMENTAL suppress dependent FT_NR_BUFFERS FT_FDC_THR FT_FDC_MAX_RATE
unless ALPHA suppress FT_ALPHA_CLOCK

default FT_FDC_IRQ from 0 range 0-15
default FT_FDC_DMA from 0 range 0-5
default FT_FDC_BASE from 0
default FT_FDC_MAX_RATE from 2000
default FT_FDC_THR from 8
default FT_NR_BUFFERS from 3
default ZFT_DFLT_BLK_SZ	from 10240

menu qic	# QIC tape support
	QIC02_TAPE? QIC02_DYNCONF 
	FTAPE? {ZFTAPE? {ZFT_DFLT_BLK_SZ%}}
	FT_NR_BUFFERS% FT_PROC_FS ftdebug
	# Floppy tape hardware configuration
	ftcontroller
	FT_FDC_BASE@ FT_FDC_IRQ% FT_FDC_DMA%
	FT_FDC_THR% FT_FDC_MAX_RATE% FT_ALPHA_CLOCK%

choices ftdebug # Floppy tape debugging output level
	FT_NORMAL_DEBUG FT_FULL_DEBUG FT_NO_TRACE FT_NO_TRACE_AT_ALL
	default FT_NORMAL_DEBUG

choices ftcontroller	# Floppy tape controller
	FT_STD_FDC FT_MACH2 FT_PROBE_FC10 FT_ALT_FDC
	default FT_STD_FDC

derive ZFT_COMPRESSOR from m & (m | ZFTAPE)
unless FT_STD_FDC suppress FT_FDC_BASE FT_FDC_IRQ FT_FDC_DMA

require FT_PROC_FS implies PROC_FS == y

# from drivers/char/Config.in, continued

unless FOOTBRIDGE suppress DC21285_WATCHDOG
unless FOOTBRIDGE and ARCH_NETWINDER suppress WB83C977_WATCHDOG

menu watchdog	# Watchdog cards
	WATCHDOG_NOWAYOUT WDT? {WDT_501 {WDT_501_FAN}} WDTPCI?
	SOFT_WATCHDOG? PCWATCHDOG? ACQUIRE_WDT? SBC60XX_WDT MIXCOMWD? 
	I810_TCO DC21285_WATCHDOG? WB83C977_WATCHDOG?

default NVRAM from ATARI
unless X86 or ATARI suppress NVRAM

default CMDLINE from "console=ttyS0,9600 console=tty0 root=/dev/sda2"

unless ARCH_NETWINDER suppress DS1620 NWBUTTON NWBUTTON_REBOOT NWFLASH
unless ALL_PPC 
	or (ARCH_EBSA110 or ARCH_SA1100 or ARCH_PERSONAL_SERVER or ARCH_CATS) 
	or MIPS64 suppress CMDLINE
unless (MIPS and (DECSTATION or DDB5074)) or SUPERH suppress CPU_LITTLE_ENDIAN
unless MIPS suppress SGI_DS1286

# from drivers/sgi/Config.in

# FIXME: MATH_EMULATION, MATHEMU, NWFPE, and IEEEFPU_EMULATION
# ought to be consolidated
unless (X86 and X86_FXSR==n) or PPC_4xx or PPC_8xx suppress MATH_EMULATION
unless S390 suppress IEEEFPU_EMULATION
unless SPARC64 and PCI suppress ENVCTRL DISPLAY7SEG
unless SPARC64 and SBUS suppress OBP_FLASH
unless EXPERIMENTAL and (ALPHA or IA64) suppress MATHEMU
unless PPC or ARM suppress NWFPE
unless APUS or ATARI or AMIGA or HP300 or SH_GENERIC or SH_OVERDRIVE or SH_SOLUTION_ENGINE suppress HEARTBEAT
unless ARCH_SA1100 or MIPS64 suppress DISCONTIGMEM
unless OBSOLETE and ALPHA_BOOK1 suppress H8
unless (S390==n) suppress RTC
unless PCI suppress INTEL_RNG

menu archihacks	# Architecture-specific hardware hacks
	MATH_EMULATION
	MATHEMU?
	NWFPE?
	IEEEFPU_EMULATION
	HEARTBEAT
	CMDLINE$
	CPU_LITTLE_ENDIAN
	DISCONTIGMEM
	DS1620?
	NWBUTTON? {NWBUTTON_REBOOT} NWFLASH?
	NVRAM?
	INTEL_RNG?
	RTC? {EFI_RTC} 
	SGI_DS1286
	H8
	ENVCTRL? DISPLAY7SEG?
	OBP_FLASH? 

# This is really only appropriate for PPC
#default CMDLINE from 'console=ttyS0,9600 console=tty0 root=/dev/sda2'

default MATHEMU from y

# This is MIPS32 cruft from CML1
default CPU_LITTLE_ENDIAN from DECSTATION or DDB5074
derive BINFMT_IRIX from (CPU_LITTLE_ENDIAN and MIPS32)
derive FORWARD_KEYBOARD from CPU_LITTLE_ENDIAN

# Video

unless VIDEO_DEV!=n suppress dependent video
unless PARPORT!=n suppress dependent I2C_PARPORT VIDEO_BWQCAM VIDEO_CQCAM
unless I2C!=n suppress dependent I2C_PARPORT VIDEO_ZORAN
unless EXPERIMENTAL suppress dependent VIDEO_CQCAM VIDEO_CPIA VIDEO_VINO
unless USB!=n suppress VIDEO_CPIA_USB
#unless SGI suppress VIDEO_VINO		# CML1 doesn't actually define SGI
unless PCI suppress dependent VIDEO_STRADIS VIDEO_ZORAN VIDEO_DEV
unless PPC suppress VIDEO_PLANB
require (VIDEO_SAA5249 <= I2C) and (TUNER_3036 <= I2C)

# http://www.rcsys.com/dt.htm (Apple II3 and IIgs and PC104 versions too, 
# but this driver looks like it supports ISA only)
unless ISA suppress DTLK

# PC104 too, but see http://us.applicom-int.com/us/applicom_en/applicom_en.html
unless ISA or PCI suppress APPLICOM

default RADIO_AZTECH_PORT	from	0x350 range 0x350 0x358
default RADIO_GEMTEK_PORT	from	0x34c range 0x20c 0x30c 0x24c 0x34c
default RADIO_RTRACK2_PORT	from	0x30c range 0x20f 0x30f
default RADIO_RTRACK_PORT	from	0x20f range 0x20c 0x30c
default RADIO_SF16FMI_PORT	from	0x284 range 0x284 0x384
default RADIO_TERRATEC_PORT	from	0x590
default RADIO_TRUST_PORT	from	0x350
default RADIO_TYPHOON_MUTEFREQ	from	0x87500
default RADIO_TYPHOON_PORT	from	0x316 range 0x316 0x336
default RADIO_ZOLTRIX_PORT	from	0x20c range 0x20c 0x30c

menu video	# Video For Linux
	VIDEO_PROC_FS
	I2C_PARPORT? 
	# Radio adapters
	RADIO_CADET? 
	RADIO_RTRACK?	{RADIO_RTRACK_PORT@} 
	RADIO_RTRACK2?	{RADIO_RTRACK2_PORT@}
	RADIO_AZTECH?	{RADIO_AZTECH_PORT@}
	RADIO_GEMTEK?	{RADIO_GEMTEK_PORT@}
	RADIO_MIROPCM20? 
	RADIO_SF16FMI?	{RADIO_SF16FMI_PORT@}
	RADIO_TERRATEC?	{RADIO_TERRATEC_PORT@}
	RADIO_TRUST?	{RADIO_TRUST_PORT@}
	RADIO_TYPHOON? {
	    RADIO_TYPHOON_PROC_FS RADIO_TYPHOON_PORT@ RADIO_TYPHOON_MUTEFREQ%
	}
	RADIO_ZOLTRIX?	{RADIO_ZOLTRIX_PORT@}
	# Video Adaptors
	VIDEO_BT848? VIDEO_PMS? VIDEO_PLANB? VIDEO_BWQCAM? VIDEO_CQCAM? 
	VIDEO_CPIA? 	{VIDEO_CPIA_PP? VIDEO_CPIA_USB?}
	VIDEO_SAA5249? TUNER_3036? VIDEO_VINO? VIDEO_STRADIS?
	VIDEO_ZORAN?	{VIDEO_BUZ?}
	VIDEO_ZR36120?

menu char_devs_misc	# Miscellaneous character devices
	DTLK? R3964? APPLICOM?

unless EXPERIMENTAL suppress dependent AGP
unless PCI suppress AGP		# agp source files include pci.h
unless PCI suppress DRM_TDFX	# From tdfxfb.c

menu graphics	# Kernel-level graphics support
	DRM	{DRM_TDFX? DRM_GAMMA? DRM_R128}
	AGP?	{
			DRM_I810 DRM_MGA 
			AGP_INTEL AGP_I810 AGP_VIA AGP_AMD AGP_SIS AGP_ALI
		}
unless DRM suppress DRM_I810 DRM_MGA

require RADIO_TYPHOON_PROC_FS implies PROC_FS == y
require VIDEO_BT848!=n implies SOUND!=n and PCI==y and I2C_ALGOBIT != n

# from drivers/char/pcmcia/Config.in

# The truth table specified in CML1 for SERIAL_PCMCIA was this, 
# where SERIAL is the top and PCMCIA is the side:
#     n m y
#   +------
# n | n n n
# m | m m m
# y | y m y
#
# This looks like an error to me.
#
derive PCMCIA_SERIAL from SERIAL & PCMCIA
unless PCMCIA_SERIAL!=n suppress dependent pcmcia_chardevs
unless CARDBUS!=n suppress PCMCIA_SERIAL_CB

menu pcmcia_chardevs	# PCMCIA? character device support
	PCMCIA_SERIAL_CS? PCMCIA_SERIAL_CB?

derive PCMCIA_CHRDEV from PCMCIA_SERIAL_CS | PCMCIA_SERIAL_CB

# from drivers/scsi/Config.in, 
#		drivers/acorn/scsi/Config.in, drivers/scsi/pcmcia/Config.in

unless SCSI!=n suppress dependent scsi_devices scsi_drivers
#unless EXPERIMENTAL suppress dependent SCSI_DEBUG_QUEUES
unless PCI suppress 
	SCSI_INITIO SCSI_INIA100 SCSI_NCR53C7xx SCSI_NCR53C8XX SCSI_SYM53C8XX
unless PARPORT!=n suppress dependent SCSI_PPA SCSI_IMM

menu scsi_devices	# SCSI? disk support
	BLK_DEV_SD? SD_EXTRA_DEVS% 
	CHR_DEV_ST? ST_EXTRA_DEVS% 
	BLK_DEV_SR? {BLK_DEV_SR_VENDOR} SR_EXTRA_DEVS%
	CHR_DEV_SG? 
	# Some SCSI? devices (e.g. CD jukebox) support multiple LUNs
	SCSI_DEBUG_QUEUES SCSI_MULTI_LUN SCSI_CONSTANTS SCSI_LOGGING

unless BLK_DEV_SD == m suppress SD_EXTRA_DEVS
unless CHR_DEV_ST == m suppress ST_EXTRA_DEVS
unless BLK_DEV_SR == m suppress SR_EXTRA_DEVS

unless EXPERIMENTAL suppress dependent 
	SCSI_NCR53C8XX_SYMBIOS_COMPAT SCSI_DEBUG
	SCSI_CUMANA_1 SCSI_ECOSCSI SCSI_OAK1 A4000T_SCSI
	A4091_SCSI WARPENGINE_SCSI BLZ603EPLUS_SCSI OKTAGON_SCSI
unless ISA suppress SCSI_AHA152X SCSI_AHA1542
unless PCI suppress 
	SCSI_AHA1740 SCSI_QLOGIC_ISP SCSI_QLOGIC_FC SCSI_QLOGIC_1280
	SCSI_DC390T BLK_DEV_3W_XXXX_RAID SCSI_INITIO SCSI_INIA100 
	SCSI_SEAGATE
unless MCA suppress SCSI_FD_MCS SCSI_IBMMCA SCSI_MCA_53C9X
unless HOTPLUG==y and PCMCIA==y suppress SCSI_PCMCIA
unless CARDBUS!=n suppress PCMCIA_APA1480
unless PPC suppress SCSI_MESH SCSI_MAC53C94
unless MIPS_JAZZ suppress JAZZ_ESP
unless ARCH_ACORN suppress SCSI_ACORNSCSI_3
	SCSI_ARXESCSI SCSI_CUMANA_2 SCSI_EESOXSCSI SCSI_POWERTECSCSI
	SCSI_CUMANA_1 SCSI_ECOSCSI SCSI_OAK1
#unless MIPS suppress SCSI_SGIWD93	# CML1 doesn't actually define SGI
unless DECSTATION==y and TC==y suppress SCSI_DECNCR
unless DECSTATION==y suppress SCSI_DECSII
unless SPARC suppress SCSI_SUNESP SCSI_QLOGICPTI
unless X86 suppress SCSI_IPS SCSI_ULTRASTOR 
unless X86 or ALPHA suppress 
	BLK_DEV_3W_XXXX_RAID SCSI_7000FASST SCSI_ACARD 
	SCSI_AIC7XXX SCSI_ADVANSYS SCSI_IN2000 SCSI_AM53C974 
	SCSI_MEGARAID SCSI_BUSLOGIC SCSI_DTC3280 SCSI_EATA SCSI_FUTURE_DOMAIN
	SCSI_FD_MCS SCSI_GDTH SCSI_GENERIC_NCR5380 SCSI_INITIO SCSI_INIA100
	SCSI_NCR53C8XX SCSI_SYM53C8XX SCSI_PAS16 SCSI_PCI2000 SCSI_PCI2220I 
	SCSI_PSI240I SCSI_QLOGIC_FAS SCSI_QLOGIC_ISP SCSI_QLOGIC_FC 
	SCSI_QLOGIC_1280 SCSI_SEAGATE SCSI_DC390T SCSI_T128 SCSI_U14_34F
unless AMIGA suppress A3000_SCSI A4000T_SCSI
unless ZORRO suppress 
	A2091_SCSI GVP11_SCSI CYBERSTORM_SCSI CYBERSTORMII_SCSI 
	BLZ2060_SCSI BLZ1230_SCSI FASTLANE_SCSI A4091_SCSI WARPENGINE_SCSI
	BLZ603EPLUS_SCSI OKTAGON_SCSI
unless ATARI suppress ATARI_SCSI
unless HADES suppress TT_DMA_EMUL
unless MAC suppress MAC_SCSI SCSI_MAC_ESP
unless MVME147 suppress MVME147_SCSI 
unless MVME16x suppress MVME16x_SCSI 
unless BVME6000 suppress BVME6000_SCSI
unless SUN3X suppress SUN3X_ESP

default AIC7XXX_CMDS_PER_DEVICE from 8
default AIC7XXX_RESET_DELAY from 5

default SCSI_EATA_MAX_TAGS	from	16
default SCSI_MESH_SYNC_RATE	from	5
default SCSI_NCR53C8XX_DEFAULT_TAGS	from	8
default SCSI_NCR53C8XX_MAX_TAGS	from	32
default SCSI_NCR53C8XX_SYNC	from	10
default SCSI_U14_34F_MAX_TAGS	from	8
default SD_EXTRA_DEVS		from	40
default SR_EXTRA_DEVS		from	2
default ST_EXTRA_DEVS		from	2

menu scsi_drivers	# SCSI? low-level drivers
	SCSI_SGIWD93? SCSI_DECNCR? SCSI_DECSII? 
	BLK_DEV_3W_XXXX_RAID? SCSI_7000FASST? 
	SCSI_ACARD? SCSI_AHA152X? SCSI_AHA1542? SCSI_AHA1740?
	SCSI_AIC7XXX? {
		AIC7XXX_TAGGED_QUEUING AIC7XXX_CMDS_PER_DEVICE% 
		AIC7XXX_PROC_STATS AIC7XXX_RESET_DELAY%
	}
	SCSI_IPS? SCSI_ADVANSYS? SCSI_IN2000? SCSI_AM53C974? SCSI_MEGARAID?
	SCSI_BUSLOGIC? {SCSI_OMIT_FLASHPOINT} 
	SCSI_DMX3191D? SCSI_DTC3280? 
	SCSI_EATA? {
		SCSI_EATA_TAGGED_QUEUE SCSI_EATA_LINKED_COMMANDS 
		SCSI_EATA_MAX_TAGS% SCSI_EATA_DMA? SCSI_EATA_PIO?
	}
	SCSI_FUTURE_DOMAIN? SCSI_FD_MCS? SCSI_GDTH? 
	SCSI_GENERIC_NCR5380? {SCSI_GENERIC_NCR53C400 ncr5380}
	SCSI_INITIO? SCSI_INIA100? 
	SCSI_PPA? SCSI_IMM? SCSI_IZIP_EPP16 SCSI_IZIP_SLOW_CTR
	SCSI_NCR53C406A? SCSI_SYM53C416? SCSI_SIM710?
	SCSI_NCR53C7xx? {
		SCSI_NCR53C7xx_sync 
		SCSI_NCR53C7xx_FAST SCSI_NCR53C7xx_DISCONNECT
	}
	SCSI_NCR53C8XX? SCSI_SYM53C8XX?
	SCSI_NCR53C8XX_DEFAULT_TAGS% SCSI_NCR53C8XX_MAX_TAGS%
	SCSI_NCR53C8XX_SYNC% SCSI_NCR53C8XX_PROFILE SCSI_NCR53C8XX_IOMAPPED
	SCSI_NCR53C8XX_PQS_PDS SCSI_NCR53C8XX_NO_DISCONNECT
	SCSI_NCR53C8XX_SYMBIOS_COMPAT
	SCSI_IBMMCA? {IBMMCA_SCSI_ORDER_STANDARD IBMMCA_SCSI_DEV_RESET} 
	SCSI_MCA_53C9X?
	SCSI_PAS16? SCSI_PCI2000? SCSI_PCI2220I? SCSI_PSI240I? SCSI_QLOGIC_FAS?
	SCSI_QLOGIC_ISP? SCSI_QLOGIC_FC? SCSI_QLOGIC_1280? SCSI_SEAGATE?
	SCSI_DC390T? {SCSI_DC390T_NOGENSUPP} 
	SCSI_T128? 
	SCSI_U14_34F? {SCSI_U14_34F_LINKED_COMMANDS SCSI_U14_34F_MAX_TAGS%}
	SCSI_ULTRASTOR? 
	SCSI_MESH? {SCSI_MESH_SYNC_RATE%} 
	SCSI_MAC53C94? JAZZ_ESP
	SCSI_ACORNSCSI_3? {SCSI_ACORNSCSI_TAGGED_QUEUE SCSI_ACORNSCSI_SYNC}
	SCSI_ARXESCSI? SCSI_CUMANA_2? SCSI_EESOXSCSI? SCSI_POWERTECSCSI?
	SCSI_CUMANA_1? SCSI_ECOSCSI? SCSI_OAK1?
	SCSI_PCMCIA {
		PCMCIA_AHA152X? PCMCIA_QLOGIC? PCMCIA_FDOMAIN? PCMCIA_APA1480?
	}
	# SPARC SCSCI
	SCSI_SUNESP? SCSI_QLOGICPTI?
	# M68K SCSI?
	A3000_SCSI? A4000T_SCSI
	A2091_SCSI? GVP11_SCSI? CYBERSTORM_SCSI? CYBERSTORMII_SCSI? 
	BLZ2060_SCSI? BLZ1230_SCSI? FASTLANE_SCSI? A4091_SCSI WARPENGINE_SCSI
	BLZ603EPLUS_SCSI OKTAGON_SCSI?
	ATARI_SCSI? {
		ATARI_SCSI_TOSHIBA_DELAY ATARI_SCSI_RESET_BOOT TT_DMA_EMUL
	}
	MAC_SCSI SCSI_MAC_ESP? SUN3X_ESP
	# VME SCSI? devices
	MVME147_SCSI MVME16x_SCSI BVME6000_SCSI
	# Debugging
	SCSI_DEBUG?
	SCSI_SIM

unless SCSI_PPA!=n and SCSI_IMM!=n suppress SCSI_IZIP_EPP16 SCSI_IZIP_SLOW_CTR
unless SCSI_NCR53C7xx!=y suppress SCSI_NCR53C8XX SCSI_SYM53C8XX
unless SCSI_NCR53C8XX!=n or SCSI_SYM53C8XX!=n suppress
	SCSI_NCR53C8XX_DEFAULT_TAGS SCSI_NCR53C8XX_MAX_TAGS
	SCSI_NCR53C8XX_SYNC SCSI_NCR53C8XX_PROFILE SCSI_NCR53C8XX_IOMAPPED
	SCSI_NCR53C8XX_PQS_PDS SCSI_NCR53C8XX_NO_DISCONNECT
	SCSI_NCR53C8XX_SYMBIOS_COMPAT
unless SCSI_SYM53C8XX!=n suppress dependent SCSI_NCR53C8XX_PQS_PDS
unless ARCH_ARCA5K suppress SCSI_ECOSCSI
unless IA64 suppress SCSI_SIM
require PCMCIA_AHA152X <= m 
require PCMCIA_QLOGIC <= m
require PCMCIA_FDOMAIN <= m
require PCMCIA_APA1480 <= m
derive PCMCIA_SCSICARD from (PCMCIA_QLOGIC!=n) or (PCMCIA_AHA152X!=n)
				or (PCMCIA_FDOMAIN!=n) or (PCMCIA_APA1480!=n)
choices ncr5380	# NCR5380/53c400 mapping method (use Port for T130B)
	SCSI_G_NCR5380_POR SCSI_G_NCR5380_MEM
	default SCSI_G_NCR5380_POR

# from drivers/sound/Config.in

unless EXPERIMENTAL suppress dependent SOUND_AD1816
unless VISWS suppress SOUND_VWSND
unless ISAPNP!=n suppress SOUND_AD1816	#from Documentation/sound/AD1816
unless ARM suppress SOUND_VIDC SOUND_WAVEARTIST
unless AMIGA or ATARI suppress DMASOUND
unless PCI suppress SOUND_CMPCI		# PCI only, according to cmpci.c
unless PCI suppress SOUND_EMU10K1	# PCI only, according to emu10k1/main.c
unless PCI suppress SOUND_ES1370	# PCI only, according to es1370.c
unless PCI suppress SOUND_ES1371	# PCI only, according to es1371.c
unless PCI suppress SOUND_ESSSOLO1	# PCI only, according to esssolo1.c
unless PCI suppress SOUND_MAESTRO	# PCI only, according to maestro.c 
					# and from Documentation/sound/Maestro
unless PCI suppress SOUND_SONICVIBES	# PCI only, according to sonicvibes.c
unless PCI suppress SOUND_TRIDENT	# PCI only, according to trident.c
unless ISA suppress SOUND_MSNDCLAS		# From msnd_pinnacle.c 
						# (supports both clas and pin)
unless ISA or ISAPNP!=n suppress SOUND_MSNDPIN	#From msnd_pinnacle.c
unless ISA or (ISAPNP!=n) suppress SOUND_MAD16	#from mad16.c
unless ISAPNP!=n suppress SOUND_CS4232		#from cs4232.c
unless ISAPNP!=n suppress SOUND_SSCAPE		#from sscape.c
unless ISA suppress SOUND_ADLIB			#from adlib_card.c and opl3.c
unless ISA suppress SOUND_YM3812		#from opl3.c
unless ISA suppress SOUND_WAVEFRONT		#from wavfront.c
unless ISA suppress SOUND_MAUI			#from maui.c
unless ISA suppress SOUND_AEDSP16		#from aedsp16.c
unless ISA suppress SOUND_PAS			#from pas2_card.c
unless PCI suppress SOUND_NM256			#Documentation/sound/NM256, nm256_audio.c
unless ISA suppress SOUND_TRIX			#trix.c
unless ISAPNP!=n suppress SOUND_AWE32_SYNTH	#Documentation/sound/README.awe, awe_wave.c.  Brief reference to PCI.
unless ISA suppress SOUND_SGALAXY		#sgalaxy.c
unless ISA or (ISAPNP!=n) suppress SOUND_GUS	#Documentation/sound/ultrasound, gus_card.c
unless (ISAPNP!=n) suppress SOUND_OPL3SA2	#Documentation/sound/OPL3-SA2
unless ISA suppress SOUND_OPL3SA1		#opl3sa.c
unless PCI suppress SOUND_YMPCI			#It's legacy PCI support
unless ISA suppress SOUND_PSS			#Documentation/sound/PSS, pss.c
unless PCI suppress SOUND_ICH			#i810_audio.c
unless PCI suppress SOUND_VIA82CXXX		#Documentation/sound/via82cxxx.txt, via82cxxx_audio.c
unless ISA suppress SOUND_DMAP			#preallocated buffer only needed for ISA cards.

default MAUI_BOOT_FILE from '/etc/sound/oswf.mot'
default TRIX_BOOT_FILE from '/etc/sound/trxpro.hex'

default MSNDCLAS_INIT_FILE from	'/etc/sound/msndinit.bin'
default MSNDCLAS_IO        from 0x290 range 0x210 0x220 0x230 0x240 0x250 0x260 0x290 0x3E0
default MSNDCLAS_IRQ       from 5 range 5 7 9 10 11 12
default MSNDPIN_IDE_IRQ    from 0
default MSNDPIN_MPU_IRQ    from 0
default MSNDCLAS_MEM       from 0xd0000 range 0xB0000 0xC8000 0xD0000 0xD8000 0xE0000 0xE8000
default MSNDCLAS_PERM_FILE from '/etc/sound/msndperm.bin'
default MSNDPIN_CFG        from 0x250 range 0x250 0x260 0x270
default MSNDPIN_INIT_FILE  from '/etc/sound/pndspini.bin'
default MSNDPIN_IO         from 0x290 range 0x210 0x220 0x230 0x240 0x250 0x260 0x290 0x3E0
default MSNDPIN_IRQ        from 5 range 5 7 9 10 11 12
default MSNDPIN_MEM        from 0xd0000 range 0xB0000 0xC8000 0xD0000 0xD8000 0xE0000 0xE8000
default MSNDPIN_PERM_FILE  from '/etc/sound/pndsperm.bin'
default MSNDPIN_IDE_IO1    from 0
default MSNDPIN_IDE_IO0    from 0
default MSNDPIN_MPU_IO     from 0
default MSNDPIN_JOYSTICK_IO from 0
default MSND_FIFOSIZE      from 128

default PSS_BOOT_FILE from '/etc/sound/dsp001.ld'
default SC6600_CDROM from 4 
		enum NO_CDROM=4 IDE_CDROM=3 PANASONIC_CDROM=1 SONY_CDROM=0
default SC6600_CDROMBASE from 0
default SOFTOSS_RATE	from	22050
default SOFTOSS_VOICES	from	32

menu sound	# Sound support
	SOUND_CMPCI? {SOUND_CMPCI_SPDIFLOOP SOUND_CMPCI_4CH {SOUND_CMPCI_REAR}}
	SOUND_EMU10K1? SOUND_FUSION?
	SOUND_ES1370? SOUND_ES1371? SOUND_ESSSOLO1? SOUND_MAESTRO? SOUND_SONICVIBES?
	SOUND_VWSND? SOUND_TRIDENT? 
	SOUND_MSNDCLAS? {
		msndclas_legend
		MSNDCLAS_INIT_FILE$ MSNDCLAS_PERM_FILE$ 
		MSNDCLAS_IRQ% MSNDCLAS_MEM@ MSNDCLAS_IO@
	}
	SOUND_MSNDPIN? {
		msndpin_legend
		MSNDPIN_INIT_FILE$ MSNDPIN_PERM_FILE$ 
		MSNDPIN_IRQ% MSNDPIN_MEM@ MSNDPIN_IO@
		MSNDPIN_DIGITAL MSNDPIN_NONPNP {
			MSNDPIN_CFG@ MSNDPIN_MPU_IO@ MSNDPIN_MPU_IRQ% 
			MSNDPIN_IDE_IO0@ MSNDPIN_IDE_IO1@ 
			MSNDPIN_IDE_IRQ% MSNDPIN_JOYSTICK_IO@
		}
	}
	MSND_FIFOSIZE%
	SOUND_OSS? {
		SOUND_TRACEINIT SOUND_DMAP
		SOUND_AD1816? SOUND_SGALAXY? SOUND_ADLIB? SOUND_ACI_MIXER?
		SOUND_CS4232?
		SOUND_SSCAPE? SOUND_GUS? {SOUND_GUS16 SOUND_GUSMAX}
		SOUND_ICH SOUND_VMIDI?
		SOUND_TRIX? {TRIX_HAVE_BOOT {TRIX_BOOT_FILE$}}
		SOUND_MSS? SOUND_MPU401? SOUND_NM256? 
		SOUND_MAD16? {MAD16_OLDCARD}
		SOUND_PAS? PAS_JOYSTICK
		SOUND_PSS? {PSS_MIXER PSS_HAVE_BOOT {PSS_BOOT_FILE$}}
		SOUND_SOFTOSS? {SOFTOSS_RATE% SOFTOSS_VOICES%}
		SOUND_SB? SOUND_AWE32_SYNTH? SOUND_WAVEFRONT? 
		SOUND_MAUI? {MAUI_HAVE_BOOT {MAUI_BOOT_FILE$}}
		SOUND_YM3812? SOUND_OPL3SA1? SOUND_YMPCI?
		SOUND_OPL3SA2? SOUND_UART6850?
		SOUND_AEDSP16? {
			SC6600 {SC6600_JOY SC6600_CDROM% SC6600_CDROMBASE@}
			AEDSP16_SBPRO AEDSP16_MSS AEDSP16_MPU401
			SOUND_VIDC? SOUND_WAVEARTIST?
		}
	SOUND_VIA82CXXX?
	}
	DMASOUND?

unless SOUND_MSNDCLAS!=n or SOUND_MSNDPIN!=n suppress MSND_FIFOSIZE
# Strengthen some dependencies already implied by brackets
unless SOUND_MSNDCLAS==y suppress 
	msndclas_legend MSNDPIN_IRQ MSNDPIN_MEM MSNDPIN_IO
unless SOUND_MSNDPIN==y suppress 
	msndpin_legend 
	MSNDPIN_IRQ MSNDPIN_MEM MSNDPIN_IO MSNDPIN_DIGITAL MSNDPIN_NONPNP
unless SOUND_TRIX==y suppress TRIX_HAVE_BOOT
unless SOUND_SOFTOSS==y suppress SOFTOSS_RATE SOFTOSS_VOICES
unless SOUND_MAUI==y suppress MAUI_HAVE_BOOT
unless SOUND_MPU401!=n suppress AEDSP16_MPU401

unless SOUND_SB!=n suppress AEDSP16_MSS AEDSP16_SBPRO
require (AEDSP16_SBPRO==n) or (AEDSP16_MSS==n) explanation aed_complaint

derive MSNDCLAS_HAVE_BOOT from SOUND_MSNDCLAS==y
derive MSNDPIN_HAVE_BOOT from SOUND_MSNDPIN==y


# from drivers/cdrom/Config.in:

default MCD_BASE from 0x300
default MCD_IRQ from 11

menu nativecdrom 
	AZTCD? GSCD? SBPCD? {SBPCD2 {SBPCD3 {SBPCD4}}}
	MCD? {MCD_IRQ% MCD_BASE@}
	MCDX? OPTCD? CM206? SJCD? ISP16_CDI? CDU31A? CDU535?

unless SBPCD==y suppress SBPCD2
unless MCD==y suppress MCD_IRQ MCD_BASE

# from drivers/isdn/Config.in:

unless INET suppress ISDN_PPP
unless X25!=n suppress dependent ISDN_X25
unless EXPERIMENTAL suppress dependent 
	HISAX_HFC_SX ISDN_DRV_PCBIT ISDN_DRV_ACT2000 
	ISDN_CAPI_MIDDLEWARE ISDN_DRV_AVMB1_B1PCIV4 ISDN_DRV_AVMB1_C4
unless SPARC suppress HISAX_AMD7930
unless MODULES suppress HYSDN
unless ISDN_CAPI==n suppress HYSDN_CAPI
unless ISA suppress ISDN_DRV_EICON_ISA
unless PCI!=n suppress ISDN_DRV_EICON_PCI
unless PCI==n suppress ISDN_DRV_EICON_STANDALONE
require HYSDN implies PROC_FS == y

menu isdn
	ISDN_PPP {ISDN_PPP_VJ ISDN_MPP}
	ISDN_AUDIO {ISDN_TTY_FAX}
	ISDN_X25
	isdn_features_legend ISDN_DRV_LOOP? ISDN_DIVERSION
	isdn_passive isdn_active

menu isdn_passive
	ISDN_DRV_HISAX? {
		isdn_dchannel_legend 
		HISAX_EURO {
			DE_AOC HISAX_NO_SENDCOMPLETE HISAX_NO_LLC 
			HISAX_NO_KEYPAD
		}
		HISAX_1TR6 HISAX_NI1
		isdn_hisax_legend
		HISAX_16_0 HISAX_16_3 HISAX_TELESPCI HISAX_S0BOX HISAX_AVM_A1
		HISAX_FRITZPCI HISAX_AVM_A1_PCMCIA HISAX_ELSA
		HISAX_IX1MICROR2 HISAX_DIEHLDIVA HISAX_ASUSCOM HISAX_TELEINT
		HISAX_HFCS HISAX_SEDLBAUER HISAX_SPORTSTER HISAX_MIC
		HISAX_NETJET HISAX_NETJET_U HISAX_NICCY HISAX_ISURF 
		HISAX_HSTSAPHIR HISAX_BKM_A4T HISAX_SCT_QUADRO HISAX_GAZEL
		HISAX_HFC_PCI HISAX_W6692 HISAX_HFC_SX # HISAX_TESTEMU
		HISAX_AMD7930
	}

menu isdn_active
	ISDN_DRV_ICN? ISDN_DRV_PCBIT? ISDN_DRV_SC? ISDN_DRV_ACT2000?
	ISDN_DRV_EICON? {
		ISDN_DRV_EICON_PCI 
		ISDN_DRV_EICON_ISA
		ISDN_DRV_EICON_STANDALONE
	}
	ISDN_CAPI? {
		ISDN_CAPI_MIDDLEWARE {ISDN_CAPIFS}
		ISDN_DRV_AVMB1_B1ISA 
		ISDN_DRV_AVMB1_B1PCI {ISDN_DRV_AVMB1_B1PCIV4}
		ISDN_DRV_AVMB1_T1ISA ISDN_DRV_AVMB1_B1PCMCIA
		ISDN_DRV_AVMB1_T1PCI ISDN_DRV_AVMB1_C4
		ISDN_DRV_AVMB1_VERBOSE_REASON
	}
	HYSDN {HYSDN_CAPI}

# from drivers/sbus/char/Config.in:

unless SPARC suppress TADPOLE_TS102_UCTRL SUN_JSFLASH
unless OBSOLETE suppress SUN_BPP
unless EXPERIMENTAL suppress dependent
	SUN_VIDEOPIX SUN_AURORA TADPOLE_TS102_UCTRL SUN_JSFLASH

menu sbus_misc
	SUN_OPENPROMIO? SUN_MOSTEK_RTC? SUN_BPP?
	SUN_VIDEOPIX? SUN_AURORA? TADPOLE_TS102_UCTRL? SUN_JSFLASH?
	# The CML1 code queried for RTC? and derived APM_RTC_IS_GMT here,
	# but we handle that in the architecture-independent features section

# from drivers/sbus/audio/Config.in:

unless EXPERIMENTAL suppress dependent sparcaudio

menu sparcaudio
	SPARCAUDIO? {
		SPARCAUDIO_AMD7930? SPARCAUDIO_CS4231? 
		SPARCAUDIO_DBRI? SPARCAUDIO_DUMMY?
	}

# from drivers/pnp/Config.in

# from drivers/video/Config.in

unless EXPERIMENTAL suppress dependent
	FB_RIVA FB_CLGEN FB_PM2 FB_VIRGE FB_RETINAZ3 FB_FM2 FB_HGA
	FB_MATROX FB_ATY FB_ATY128 FB_3DFX FB_SIS FB_VIRTUAL
unless OBSOLETE suppress FB_HGA
unless PPC or X86 suppress FB_VGA16
unless ATARI or PCI suppress FB_ATY FB_ATY128
unless PCI suppress 
	FB_RIVA FB_PM2_FIFO_DISCONNECT FB_PM2_PCI FB_MATROX FB_3DFX FB_PCI 
unless PCI or AMIGA suppress FB_CLGEN FB_PM2
unless AMIGA suppress FB_PM2_CVPPC FB_AMIGA FONT_PEARL_8x8
unless ARCH_ACORN suppress FB_ACORN
#unless ARCH_NETWINDER suppress FB_CYBER2000
unless ZORRO suppress FB_CYBER FB_VIRGE FB_RETINAZ3 FB_FM2
unless ATARI suppress FB_ATARI
unless PPC suppress FB_OF FB_VGA16
#unless MAC suppress FB_DAFB
unless ALPHA suppress FB_TGA
unless X86 suppress FB_VESA FB_HGA
unless VISWS suppress FB_SGIVW
unless SUN3X suppress FB_SUN3	# an unreferenced SUN3 also suppressed this.
unless SPARC suppress 
	FB_SBUS FB_PCI FONT_SUN8x16 FONT_SUN12x22
unless SPARC64 suppress FB_CREATOR
unless SPARC32 suppress FB_TCX FB_CGFOURTEEN FB_P9100
unless MAC suppress FONT_6x11
unless ARM or ARCH_ACORN suppress FONT_ACORN_8x8
unless PPC suppress FB_COMPAT_XPMAC
unless SUPERH and HD64461 suppress FB_HIT

menu framebuffer
	FB_VGA16? FB_ATY? FB_ATY128? FB_3DFX? FB_SIS
	FB_RIVA? FB_CLGEN? 
	FB_PM2? {FB_PM2_FIFO_DISCONNECT FB_PM2_PCI FB_PM2_CVPPC} 
	FB_ACORN FB_CYBER2000? FB_SA1100 
	FB_AMIGA? {FB_AMIGA_OCS FB_AMIGA_ECS FB_AMIGA_AGA}
	FB_CYBER? FB_VIRGE FB_RETINAZ3? FB_FM2 FB_ATARI
	FB_OF FB_CONTROL FB_PLATINUM FB_IMSTT FB_CT65550 FB_S3TRIO
	FB_VALKYRIE # FB_DAFB
	FB_COMPAT_XPMAC
	FB_TGA? FB_VESA FB_HGA? FB_SGIVW?
	FB_MATROX? {
		FB_MATROX_MILLENIUM FB_MATROX_MYSTIQUE FB_MATROX_G100
		FB_MATROX_I2C? {FB_MATROX_MAVEN?} FB_MATROX_MULTIHEAD
	}
	FB_SBUS {FB_CREATOR FB_CGTHREE FB_TCX FB_CGFOURTEEN FB_P9100 FB_LEO}
	FB_SUN3 FB_BWTWO FB_CGSIX
	FB_HIT?
	FB_PCI {FB_IGA} FB_VIRTUAL?
	FBCON_ADVANCED {
		FBCON_MFB?
		FBCON_CFB2? FBCON_CFB4? FBCON_CFB8? 
		FBCON_CFB16? FBCON_CFB24? FBCON_CFB32?
		FBCON_AFB? FBCON_ILBM? 
		FBCON_IPLAN2P2? FBCON_IPLAN2P4? FBCON_IPLAN2P8? #FBCON_IPLAN2P16?
		FBCON_MAC? FBCON_VGA_PLANES? FBCON_VGA? FBCON_HGA?
	}
	FBCON_FONTWIDTH8_ONLY 
	FONT_SUN8x16 FONT_SUN12x22
	FBCON_FONTS {
		FONT_8x8 FONT_8x16 FONT_PEARL_8x8 FONT_ACORN_8x8 FONT_6x11
	}

unless FB_PM2==y suppress FB_PM2_FIFO_DISCONNECT FB_PM2_PCI FB_PM2_CVPPC
unless FB_OF or MAC suppress FB_VALKYRIE
require FB_MATROX_I2C <= I2C_ALGOBIT
unless FB_MATROX_G100 suppress FB_MATROX_MAVEN FB_MATROX_MULTIHEAD
require X86 implies (VIDEO_SELECT >= FB)
unless FB_SUN3 or FB_SBUS suppress FB_BWTWO FB_CGSIX
unless FB_PCI suppress FB_IGA
unless FBCON_FONTWIDTH8_ONLY==n suppress FONT_SUN12x22 FONT_6x11 

require FB_MATROX_I2C!=n implies I2C==y

derive DUMMY_CONSOLE from FB or (SGI_IP22 and (SGI_NEWPORT_CONSOLE==n)) 
derive FB_MAC from FB and MAC
derive FB_HP300 from FB and HP300
derive BUS_I2C from FB and VISWS
derive FB_APOLLO from FB and APOLLO
derive FB_Q40 from FB and Q40

# These defaults will set our feature symbols if the user did not select
# them explicitly in FBCON_ADVANCED
default FBCON_MFB from FBCON_ADVANCED |
		FB_ACORN | FB_AMIGA | FB_ATARI | FB_CYBER | FB_MAC | 
		FB_RETINAZ3 | FB_VIRGE | FB_VIRTUAL | FB_BWTWO | FB_CLGEN
default FBCON_CFB2 from FB_ACORN | FB_MAC | FB_SA1100 | FB_VIRTUAL
default FBCON_CFB4 from FB_ACORN | FB_MAC | FB_VIRTUAL
default FBCON_CFB8 from FB_ACORN |  FB_ATARI | FB_ATY |  FB_MAC 
	| FB_OF |  FB_TGA | FB_VESA |  FB_VIRTUAL | FB_TCX |  FB_CGTHREE
	| FB_CONTROL |  FB_CLGEN | FB_CGFOURTEEN |  FB_G364 | FB_VIRGE
	| FB_CYBER | FB_VALKYRIE |  FB_PLATINUM | FB_IGA |  FB_MATROX 
	| FB_CT65550 |  FB_PM2 | FB_P9100 |  FB_ATY128 | FB_RIVA 
	| FB_SGIVW |  FB_CYBER2000 | FB_SA1100 | FB_3DFX | FB_SIS
default FBCON_CFB16 from FB_ATARI |  FB_ATY | FB_MAC |  FB_VESA |
	   FB_VIRTUAL | FB_Q40 | FB_CONTROL |  FB_CLGEN |
	   FB_VIRGE |  FB_CYBER | FB_VALKYRIE |  FB_PLATINUM |
	   FB_CT65550 |  FB_MATROX | FB_PM2 |  FB_SGIVW |
	   FB_RIVA |  FB_ATY128 | FB_CYBER2000 | FB_3DFX | FB_SIS
default FBCON_CFB24 from FB_ATY |  FB_VIRTUAL | FB_CLGEN 
	| FB_VESA | FB_MATROX |  FB_PM2 | FB_ATY128 | FB_CYBER2000
default FBCON_CFB32 from FB_ATARI |  FB_ATY | FB_VESA |  FB_VIRTUAL |
	FB_CONTROL |  FB_CLGEN | FB_TGA |  FB_PLATINUM | FB_MATROX |
	FB_PM2 | FB_RIVA |  FB_ATY128 | FB_FM2 |  FB_SGIVW | FB_3DFX | FB_SIS
default FBCON_AFB from FB_AMIGA
default FBCON_ILBM from FB_AMIGA
default FBCON_IPLAN2P2 from FB_ATARI
default FBCON_IPLAN2P4 from FB_ATARI
default FBCON_IPLAN2P8 from FB_ATARI
#default FBCON_IPLAN2P16 from FB_ATARI
default FBCON_MAC from FB_MAC | FB_VIRTUAL
default FBCON_VGA_PLANES from FB_VGA16
default FBCON_HGA from FB_HGA

# These defaults will set font symbols if FBCON_FONTS was not selected.
default FONT_8x8 from (FBCON_FONTS==n)
default FONT_8x16 from (FBCON_FONTS==n)
default FONT_6x11 from (FBCON_FONTS==n) and MAC and FBCON_FONTWIDTH8_ONLY==n
default FONT_PEARL_8x8 from (FBCON_FONTS==n) and AMIGA
default FONT_ACORN_8x8 from (FBCON_FONTS==n) and (ARM or ARCH_ACORN)

# from drivers/fc4/Config.in

menu fc4	# Fiber Channel support
	fc4_drivers_legend
	{FC4_SOC? FC4_SOCAL?}
	fc4_targets_legend
	SCSI_PLUTO? SCSI_FCAL_SUN? SCSI_FCAL_GENERIC?

unless SCSI!=n suppress dependent 
	fc4_targets_legend SCSI_PLUTO SCSI_FCAL_GENERIC SCSI_FCAL_SUN

derive SCSI_FCAL from SCSI_FCAL_GENERIC!=n or SCSI_FCAL_SUN!=n
private SCSI_FCAL_GENERIC SCSI_FCAL_SUN

default FC4_SOC from n
default FC4_SOCAL from n
default SCSI_PLUTO from n
default SCSI_FCAL_GENERIC from n
default SCSI_FCAL_SUN from n

## from drivers/acorn/scsi/Config.in
#
#unless SCSI suppress dependent acorn_scsi
#unless EXPERIMENTAL suppress dependent SCSI_CUMANA_1 SCSI_ECOSCSI SCSI_OAK1
#unless ARCH_ARCA5K suppress SCSI_ECOSCSI
#
#menu acorn_scsi	# SCSI? driver configuration for Acorn
#	SCSI_ACORNSCSI_3? {SCSI_ACORNSCSI_TAGGED_QUEUE SCSI_ACORNSCSI_SYNC}
#	SCSI_ARXESCSI? SCSI_CUMANA_2? SCSI_EESOXSCSI? SCSI_POWERTECSCSI? 
#	SCSI_CUMANA_1? SCSI_ECOSCSI? SCSI_OAK1?

# from drivers/usb/Config.in

unless EXPERIMENTAL suppress dependent 
	USB_SERIAL_WHITEHEAT USB_SERIAL_FTDI_SIO USB_SERIAL_DIGI_ACCELEPORT
	USB_PLUSB USB_PEGASUS USB_RIO500 USB_DSBR USB_MDC800
	USB_MICROTEK USB_SERIAL_KEYSPAN USB_SERIAL_KEYSPAN_PDA 
	USB_SERIAL_OMNINET USB_BANDWIDTH USB_BLUETOOTH
unless SCSI!=n suppress USB_MICROTEK
# unless SOUND!=n suppress USB_AUDIO
unless SCSI!=n suppress USB_STORAGE
# unless VIDEO_DEV!=n suppress USB_IBMCAM
# unless VIDEO_DEV!=n suppress USB_OV511
unless PARPORT!=n suppress USB_USS720
unless NET!=n suppress USB_PLUSB
unless NET!=n suppress USB_PEGASUS
# unless VIDEO_DEV!=n suppress USB_DSBR

default INPUT_MOUSEDEV_SCREEN_X from 1024
default INPUT_MOUSEDEV_SCREEN_Y from 768

menu usb	# USB? support
	USB_DEBUG
	usb_options_legend
	USB_DEVICEFS USB_BANDWIDTH
	usb_controllers_legend
	USB_UHCI? USB_UHCI_ALT? USB_OHCI? 
	usb_devices_legend
	USB_PRINTER? USB_SCANNER? USB_MICROTEK?
	USB_AUDIO? USB_ACM? 
	USB_SERIAL? {
		USB_SERIAL_GENERIC USB_SERIAL_VISOR?
		USB_SERIAL_WHITEHEAT? USB_SERIAL_FTDI_SIO?
		USB_SERIAL_KEYSPAN_PDA?
		USB_SERIAL_KEYSPAN? {
			USB_SERIAL_KEYSPAN_USA28
			USB_SERIAL_KEYSPAN_USA28X
			USB_SERIAL_KEYSPAN_USA19
			USB_SERIAL_KEYSPAN_USA18X
			USB_SERIAL_KEYSPAN_USA19W
		}
		USB_SERIAL_DIGI_ACCELEPORT? USB_SERIAL_OMNINET?
		USB_SERIAL_DEBUG
	}
	USB_IBMCAM? USB_OV511? USB_DC2XX? USB_MDC800? 
	USB_STORAGE? {USB_STORAGE_DEBUG}
	USB_USS720? USB_DABUSB? USB_PLUSB? USB_PEGASUS? USB_RIO500? USB_DSBR?
	USB_BLUETOOTH? 
	usb_hid_legend
	USB_HID? USB_KBD? USB_MOUSE?
	USB_WACOM? INPUT_IFORCE_USB? 

require (USB_UHCI==n) or (USB_UHCI_ALT==n) or ((USB_UHCI==m) and (USB_UHCI_ALT==m))
	explanation usb_complaint
require INPUT_IFORCE_USB <= INPUT_IFORCE
unless USB_HID!=y suppress USB_KBD USB_MOUSE
require USB_MICROTEK <= SCSI
# require USB_AUDIO <= SOUND
require USB_STORAGE <= SCSI
# require USB_IBMCAM <= VIDEO_DEV
# require USB_OV511 <= VIDEO_DEV
require USB_USS720 <= PARPORT
require USB_PLUSB <= NET
require USB_PEGASUS <= NET
# require USB_DSBR <= VIDEO_DEV

# from drivers/input/Config.in

menu input	
	INPUT_KEYBDEV? 
	INPUT_MOUSEDEV? {
		# INPUT_MOUSEDEV_MIX INPUT_MOUSEDEV_DIGITIZER {
			INPUT_MOUSEDEV_SCREEN_X% INPUT_MOUSEDEV_SCREEN_Y%
		# }
	}
	INPUT_JOYDEV? INPUT_EVDEV?

# from drivers/i2o/Config.in

unless NET suppress I2O_LAN
unless SCSI!=n suppress I2O_SCSI
unless PCI suppress I2O_PCI

menu i2o	# I2O? support
	 I2O_PCI? I2O_BLOCK? I2O_LAN? I2O_SCSI? I2O_PROC?

# from drivers/atm/Config.in

unless INET suppress ATM_TCP
unless X86 suppress ATM_ZATM_EXACT_TS
unless PCI or SBUS suppress ATM_FORE200E
unless PCI suppress ATM_FORE200E_PCA
unless SBUS suppress ATM_FORE200E_SBA

unless PCI suppress ATM_ENI		# eni.c
unless PCI suppress ATM_ZATM		# zatm.c
unless PCI suppress ATM_NICSTAR		# nicstar.c
unless PCI suppress ATM_AMBASSADOR	# ambassador.c; EISA version is
					# not supported
unless PCI suppress ATM_HORIZON		# horizon.c
unless PCI suppress ATM_IA		# iphase.c

default ATM_FORE200E_DEBUG from 0
default ATM_FORE200E_TX_RETRY from 16
default ATM_FORE200E_SBA_FW from ""
default ATM_FORE200E_PCA_FW from ""

menu atm	# ATM drivers
	ATM_TCP?
	ATM_ENI? {
		ATM_ENI_DEBUG ATM_ENI_TUNE_BURST {
			ATM_ENI_BURST_TX_16W ATM_ENI_BURST_TX_8W
			ATM_ENI_BURST_TX_4W ATM_ENI_BURST_TX_2W
			ATM_ENI_BURST_RX_16W ATM_ENI_BURST_RX_8W
			ATM_ENI_BURST_RX_4W ATM_ENI_BURST_RX_2W
		}
	}
	ATM_ZATM? {ATM_ZATM_DEBUG ATM_ZATM_EXACT_TS}
	# ATM_TNETA1570 {ATM_TNETA1570_DEBUG}
	ATM_NICSTAR? {ATM_NICSTAR_USE_SUNI ATM_NICSTAR_USE_IDT77105}
	ATM_AMBASSADOR? {ATM_AMBASSADOR_DEBUG}
	ATM_HORIZON? {ATM_HORIZON_DEBUG}
	ATM_IA? {ATM_IA_DEBUG}
	ATM_FORE200E? {
		ATM_FORE200E_PCA {ATM_FORE200E_PCA_DEFAULT_FW} 
		ATM_FORE200E_PCA_FW$
		ATM_FORE200E_SBA {ATM_FORE200E_SBA_DEFAULT_FW}
		ATM_FORE200E_SBA_FW$
		ATM_FORE200E_TX_RETRY% ATM_FORE200E_DEBUG%
	}

unless ATM_FORE200E_PCA==n suppress ATM_FORE200E_PCA_FW
unless ATM_FORE200E_SBA==n suppress ATM_FORE200E_SBA_FW

require (ATM_FORE200E!=n and PCI) implies ATM_FORE200E_PCA == y

# from drivers/parport/Config.in

unless PARPORT!=n suppress dependent parport
unless EXPERIMENTAL suppress dependent 
	PARPORT_AMIGA PARPORT_SUNBPP PARPORT_MFC3 PARPORT_PC_SUPERIO
unless ARM suppress PARPORT_ARC
unless AMIGA suppress PARPORT_AMIGA
unless ZORRO suppress PARPORT_MFC3
unless ATARI suppress PARPORT_ATARI
unless ZORRO or APUS suppress GVPIOEXT MULTIFACE_III_TTY

menu parport	# Parallel port support
	PARPORT_PC? {PARPORT_PC_FIFO PARPORT_PC_SUPERIO} PARPORT_PC_PCMCIA
	PARPORT_ARC? PARPORT_AMIGA? {PARPORT_MFC3?}
	PARPORT_ATARI? PARPORT_SUNBPP? PARPORT_OTHER PARPORT_1284
	GVPIOEXT? {GVPIOEXT_LP? GVPIOEXT_PLIP?}
	MULTIFACE_III_TTY?

# Don't bother with this if parport_pc is a module; it only affects
# the presence or not of some __init's, which are no-ops for modules.
unless PARPORT_PC==y and HOTPLUG and PCMCIA!=n suppress PARPORT_PC_PCMCIA

unless SBUS==y suppress PARPORT_SUNBPP

# from drivers/pcmcia/Config.in

# Right now the non-CardBus choices are not supported
# by the integrated kernel driver.  So:
#
derive CARDBUS from PCMCIA
#
# Someday we'll do this:
#
#unless PCMCIA!=n suppress pcmcia
#unless PCI suppress CARDBUS
#menu pcmcia 	# PCMCIA?/CardBus support
#	CARDBUS I82365 TCIC

# from drivers/telephony/Config.in

menu telephony # Telephony Support
	PHONE? {PHONE_IXJ?}

# from drivers/ieee1394/Config.in

unless EXPERIMENTAL and PCI suppress ieee1394
#unless OBSOLETE suppress IEEE1394_AIC5800

menu ieee1394	# IEEE 1394 (FireWire) support
	IEEE1394_PCILYNX? { IEEE1394_PCILYNX_LOCALRAM IEEE1394_PCILYNX_PORTS }
	#IEEE1394_AIC5800?
	IEEE1394_OHCI1394? { IEEE1394_VIDEO1394? }
	IEEE1394_RAWIO?
	IEEE1394_VERBOSEDEBUG

# Power management support

default PM from ACPI_KERNEL_CONFIG
default ACPI from ACPI_KERNEL_CONFIG
default ACPI_INTERPRETER from ACPI_KERNEL_CONFIG

menu pm	# Power management
	PM {
		ACPI? {ACPI_INTERPRETER ACPI_S1_SLEEP}
		APM? {
			APM_IGNORE_USER_SUSPEND APM_DO_ENABLE APM_CPU_IDLE
			APM_DISPLAY_BLANK # APM_IGNORE_MULTIPLE_SUSPEND
			APM_IGNORE_SUSPEND_BOUNCE APM_RTC_IS_GMT APM_ALLOW_INTS
			APM_REAL_MODE_POWER_OFF
		}
	}

# Choice of architecture and cross-architecture dependencies

choices arch 	# Processor architecture
	X86
	ALPHA
	SPARC32
	SPARC64
	MIPS32
	PPC
	M68K
	ARM
	SUPERH
	IA64
	MIPS64
	S390
	default X86

derive SPARC from SPARC32 or SPARC64
derive MIPS from MIPS32 or MIPS64
derive UID16 from X86 or ALPHA or SPARC32 or PPC or M68K or SUPERH or S390
derive BINFMT_ELF32 from SPARC_BINFMT_ELF32!=n or MIPS_BINFMT_ELF32!=n
derive ARCH_S390 from S390

# from arch/i386/config.in

#private X86

unless EXPERIMENTAL suppress dependent ACPI_INTERPRETER

# This is the top-level menu for architecture-dependent i386 stuff
menu x86	# Intel options
	x86type
	MICROCODE?
	X86_MSR?
	X86_CPUID?
	himem
	MTRR
	X86_UP_IOAPIC
	VISWS

unless M686 suppress MICROCODE
unless SMP!=y suppress X86_UP_IOAPIC
require VISWS implies PCI == y

choices x86type	# Intel x86 processor types
	M386 M486 M586 M586TSC M586MMX M686 M686FXSR MK6 MK7
	MCRUSOE MWINCHIPC6 MWINCHIP2 MWINCHIP3D
	default M686

choices himem		# High Memory Support
	NOHIGHMEM HIGHMEM4G HIGHMEM64G
	default NOHIGHMEM

derive X86_WP_WORKS_OK from (M386==n)
derive X86_INVLPG from (M386==n)
derive X86_BSWAP from (M386==n)
derive X86_POPAD_OK from (M386==n)
derive X86_TSC from M586TSC or M586MMX or M686 or M686FXSR or MK6 or MK7 
			or MCRUSOE or MWINCHIP2 or MWINCHIP3D
derive X86_GOOD_APIC from M586MMX or M686 or M686FXSR or MK7
derive X86_PGE from M686 or M686FXSR or MK7
derive X86_USE_3DNOW from MK7 or MWINCHIP3D
derive X86_CMPXCHG from M386==n
derive X86_USE_STRING_486 from M486 or M586 or M586TSC or M586MMX
derive X86_ALIGNMENT_16 from M486 or M586 or M586TSC or M586MMX or MK6 
			or MWINCHIPC6 or MWINCHIP2 or MWINCHIP3D
derive X86_USE_PPRO_CHECKSUM from M686 or M686FXSR or MK6 or MK7
			or MWINCHIPC6 or MWINCHIP2 or MWINCHIP3D
derive X86_FXSR from M686FXSR
derive X866_XMM from M686FXSR

derive X86_PAE from HIGHMEM64G

derive X86_IO_APIC from X86_UP_IOAPIC or SMP or VISWS
derive X86_LOCAL_APIC from X86_UP_IOAPIC or SMP or VISWS
derive X86_VISWS_APIC from VISWS

# There are PCI-only machines out there, but as of 2.40-test1 I'm told
# nobody has tested the kernel with an x86 lacking ISA.  Giacomo Catenazzi
# believes that some motherboard chips use the ISA support code anyway even
# if you don't have an ISA bus.
require X86 implies ISA==y

derive X86_L1_CACHE_SHIFT from ((M586 or M586TSC or M586MMX or M686 or MK7 or M686FXSR or MCRUSOE or MWINCHIPC6 or MWINCHIP2 or MWINCHIP3D)) + MK7

# from arch/alpha/config.in

# This is the top-level menu for architecture-dependent alpha stuff

private ALPHA

choices alphatype	# Alpha system type
	ALPHA_GENERIC ALPHA_ALCOR ALPHA_XL ALPHA_BOOK1 ALPHA_AVANTI 
	ALPHA_CABRIOLET ALPHA_DP264 ALPHA_EB164 ALPHA_EB64P 
	ALPHA_EB66 ALPHA_EB66P ALPHA_EIGER ALPHA_JENSEN ALPHA_LX164
	ALPHA_MIATA ALPHA_MIKASA ALPHA_NAUTILUS ALPHA_NONAME ALPHA_NORITAKE
	ALPHA_PC164 ALPHA_P2K ALPHA_RAWHIDE ALPHA_RUFFIAN ALPHA_RX164
	ALPHA_SX164 ALPHA_SABLE ALPHA_TAKARA ALPHA_TITAN ALPHA_WILDFIRE
	default ALPHA_GENERIC

derive ALPHA_PCI from (ALPHA_JENSEN or ALPHA_WILDFIRE or ALPHA_TITAN)
require ALPHA implies PCI == ALPHA_PCI 

derive ALPHA_EV4 from ALPHA_NONAME or ALPHA_BOOK1 or ALPHA_EB66 or ALPHA_EB66P
			or ALPHA_P2K or ALPHA_CABRIOLET or ALPHA_AVANTI 
			or ALPHA_EB64P or ALPHA_XL or 
			((ALPHA_MIKASA or ALPHA_NORITAKE) and (ALPHA_PRIMO==n))
			or (ALPHA_SABLE and ALPHA_GAMMA==n)
			or ALPHA_JENSEN
derive ALPHA_LCA from ALPHA_NONAME or ALPHA_BOOK1 or ALPHA_EB66 
			or ALPHA_EB66P or ALPHA_P2K
derive ALPHA_APECS from ALPHA_CABRIOLET or ALPHA_AVANTI or ALPHA_EB64P 
			or ALPHA_XL or
			((ALPHA_MIKASA or ALPHA_NORITAKE) and (ALPHA_PRIMO==n))
derive ALPHA_EV5 from ALPHA_EB164 or ALPHA_PC164 or ALPHA_ALCOR or ALPHA_XL
			or ALPHA_TAKARA or ALPHA_PRIMO or ALPHA_GAMMA
			or ALPHA_MIATA or ALPHA_LX164 or ALPHA_SX164
			or ALPHA_RUFFIAN or ALPHA_RAWHIDE or ALPHA_RX164
derive ALPHA_CIA from ALPHA_EB164 or ALPHA_PC164 or ALPHA_ALCOR or ALPHA_XL
			or ALPHA_TAKARA or ALPHA_PRIMO or ALPHA_MIATA
			or ALPHA_LX164 or ALPHA_SX164 or ALPHA_RUFFIAN

derive ALPHA_T2 from ALPHA_SABLE
derive ALPHA_PYXIS from ALPHA_MIATA or ALPHA_LX164 
			or ALPHA_SX164 or ALPHA_RUFFIAN
derive ALPHA_EV6 from ALPHA_DP264 or ALPHA_EIGER 
			or ALPHA_NAUTILUS or ALPHA_TITAN or ALPHA_WILDFIRE
derive ALPHA_TSUNAMI from ALPHA_DP264 or ALPHA_EIGER
derive ALPHA_MCPIA from ALPHA_RAWHIDE
derive ALPHA_POLARIS from ALPHA_RX164
derive ALPHA_IRONGATE from ALPHA_NAUTILUS

derive ALPHA_EISA from ALPHA_ALCOR or ALPHA_MIKASA or ALPHA_SABLE 
			or ALPHA_NORITAKE or ALPHA_RAWHIDE

derive PCI_CONSOLE from (ALPHA or IA64) and FB 

require ALPHA_CABRIOLET implies ALPHA_EB64P

# FIXME: The CML1 program set AVANTI *after* using it in conditionals.  Grrr..
#derive ALPHA_AVANTI from ALPHA_XL

unless ALPHA_GENERIC or ALPHA_DP264 or ALPHA_WILDFIRE or ALPHA_TITAN
	suppress ALPHA_LARGE_VMALLOC

menu alpha # Alpha configuration options
	alphatype
	ALPHA_PRIMO
	ALPHA_GAMMA
	ALPHA_SRM
	BINFMT_EM86?
	ALPHA_LEGACY_START_ADDRESS
	ALPHA_LARGE_VMALLOC

unless ALPHA_MIKASA or ALPHA_NORITAKE suppress ALPHA_PRIMO
unless ALPHA_SABLE suppress ALPHA_GAMMA

derive FORCE_ALPHA_SRM from ALPHA_JENSEN or ALPHA_MIKASA or ALPHA_SABLE 
			or ALPHA_NORITAKE or ALPHA_DP264 or ALPHA_RAWHIDE
			or ALPHA_EIGER or ALPHA_WILDFIRE or ALPHA_TITAN
default ALPHA_SRM from FORCE_ALPHA_SRM
unless FORCE_ALPHA_SRM==n suppress ALPHA_SRM

# from arch/sparc/config.in and arch/sparc64/config.in

private SPARC32 SPARC64

# The CML1 for the Sparc 64 configuration asserted these rules
# for all Sun machines, but it looks like some of them are broken
# by SUN3X boxes.
#
require SPARC implies ISA==n and PCMCIA==n and VT==y and VT_CONSOLE==y
	and BUSMOUSE==y and SUN_MOUSE==y and SERIAL==y and SERIAL_CONSOLE==y
	and SUN_KEYBOARD==y
derive SBUS from SPARC or SUN3X
derive SBUSCHAR from SPARC or SUN3X
derive SUN_SERIAL from SPARC or SUN3X
derive SUN_CONSOLE from SPARC
derive SUN_AUXIO from SPARC
derive SUN_IO from SPARC


unless (SUN4==n) suppress sbus_misc sparcaudio

unless SPARC32 suppress SUN4
unless SPARC64 suppress SPARC32_COMPAT

menu sparc	# Sparc processor options
	SUN4
	sbus_misc
	sparcaudio
	SUNOS_EMUL
	SOLARIS_EMUL?
	SPARC32_COMPAT {SPARC_BINFMT_ELF32? BINFMT_AOUT32}

require (SPARC64 and PCI) implies
	BLK_DEV_IDEPCI==y and IDEDMA_NEW_DRIVE_LISTINGS==y and
	BLK_DEV_NS87415==y and BLK_DEV_CMD64X==y
	# and BLK_DEV_IDEDMA==y 
	# and BLK_DEV_IDE_MODES==y
	# and IDEDMA_AUTO==y

# from arch/mips/config.in

# This is the top-level menu for architecture-dependent Mips 32 stuff

unless EXPERIMENTAL suppress dependent 
	ACER_PICA_61 ALGOR_P4032 BAGET_MIPS COBALT_MICRO_SERVER 
	COBALT_28 DECSTATION ORION DDB5074

private MIPS32 MIPS64

unless EXPERT suppress CPU_ADVANCED CPU_HAS_LLSC CPU_HAS_WB
unless WIZARD suppress CROSSCOMPILE MIPS_FPE_MODULE
unless MODULES suppress MIPS_FPE_MODULE

menu mips	# MIPS machine selection
	mipstype
	# MIPS32
	ACER_PICA_61 ALGOR_P4032 BAGET_MIPS 
	DECSTATION ORION DDB5074
	COBALT_MICRO_SERVER {COBALT_28}
	MIPS_MAGNUM_4000 OLIVETTI_M700 SGI_IP22 SNI_RM200_PCI
	CPU_ADVANCED CPU_HAS_LLSC CPU_HAS_WB
	CROSSCOMPILE
	MIPS_FPE_MODULE
	# MIPS64
	SGI_IP27 {
		SGI_SN0_N_MODE MIPS_NUMA MAPPED_KERNEL
		REPLICATE_KTEXT REPLICATE_EXHANDLERS
	}
	MIPS_INSANE_LARGE MIPS32_COMPAT MIPS_BINFMT_ELF32?

unless MIPS32 suppress
	ACER_PICA_61 ALGOR_P4032 BAGET_MIPS DECSTATION DDB5074
	MIPS_MAGNUM_4000 OLIVETTI_M700 SGI_IP22 SNI_RM200_PCI
	CPU_HAS_LLSC CPU_HAS_WB
unless MIPS64 suppress
	SGI_IP27 SGI_SN0_N_MODE # SGI_SN0_XXL
	MIPS_INSANE_LARGE MIPS32_COMPAT MIPS_BINFMT_ELF32

default CPU_HAS_LLSC from (CPU_R3000==n)
default CPU_HAS_WB from CPU_R3000 and DECSTATION

require (ALGOR_P4032 or SNI_RM200_PCI or DDB5074) implies PCI==y
require (MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61 
		or SNI_RM200_PCI or DDB5074 or COBALT_MICRO_SERVER)
	implies ISA==y
derive COBALT_27 from COBALT_MICRO_SERVER
derive COBALT_LCD from COBALT_MICRO_SERVER
derive COBALT_SERIAL from COBALT_MICRO_SERVER
derive PC_KEYB from MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61
			or SGI_IP22 or SNI_RM200_PCI or FOOTBRIDGE
require DDB5074 or COBALT_MICRO_SERVER or SNI_RM200_PCI or SGI_IP27 
	implies PCI==y
require DECSTATION or SGI_IP22 implies IDE==n
require (MIPS_MAGNUM_4000 or OLIVETTI_M700) implies FB==y 
derive CONFIG_ARC32 from
	MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61 
	or SGI_IP22 or SNI_RM200_PCI

#derive HAVE_IO_PORTS from MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61
#			or SNI_RM200_PCI or DDB5074
derive MIPS_JAZZ from MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61 
		or MIPS_MAGNUM_4000 or OLIVETTI_M700
derive FB_G364 from MIPS_MAGNUM_4000 or OLIVETTI_M700
derive SGI from SGI_IP22 or SGI_IP27

# FIXME: deal with these
# if [ "$CONFIG_SGI_IP22" = "y" ]; then
#    define_bool CONFIG_BOOT_ELF32 y
#    define_bool CONFIG_BOARD_SCACHE y
#    define_bool CONFIG_ARC_MEMORY y
# fi
# 
# if [ "$CONFIG_SGI_IP27" = "y" ]; then
#    define_bool CONFIG_BOOT_ELF64 y
#    define_bool CONFIG_ARC64 y
#    define_bool CONFIG_COHERENT_IO y
#    define_bool CONFIG_QL_ISP_A64 y
# fi

choices mipstype	# MIPS-32 CPU selection
	CPU_R3000 CPU_R6000 CPU_R4300 CPU_R4X00 CPU_R5000 CPU_NEVADA
	CPU_R8000 CPU_R10000
	default CPU_R4X00
unless MIPS32 suppress CPU_R3000 CPU_R6000

# from arch/ppc/config.in

# This is the top-level menu for architecture-dependent Power PC stuff

private PPC_6xx_GENERIC

choices ppctype	# Power PC processor type
	PPC_6xx  PPC_4xx POWER3 POWER4 PPC_8260 PPC_8xx
	default PPC_6xx

choices ppc4xxtype
	OAK WALNUT
	default OAK

choices ppc6xxtype
	PPC_6xx_GENERIC GEMINI EST8260 APUS
	default PPC_6xx_GENERIC

#choices ppc8xxmodel
#	MPC821 MPC823 MPC850 MPC855 MPC860 MPC860T
#	default MPC860

choices ppc8xxtype
	RPXLITE RPXCLASSIC BSEIP TQM8xxL TQM860L TQM860 MBX WINCEPT
	default RPXLITE 

default PCI_QSPAN from PPC and PPC_8xx != y
require PCI_QSPAN implies PCI == y

menu ppc
	ppctype
	ppc4xxtype
	ppc6xxtype ALTIVEC
	#ppc8xxmodel
	ppc8xxtype
	PMAC_PBOOK
	#TOTALMP
	BOOTX_TEXT
	MOTOROLA_HOTSWAP
	M68K_PRINTER?
	PPC8xx_COPYBACK
	PPC8xx_CPU6
	PCI_QSPAN

menu adb	# Apple Desktop Bus support
	ADB_CUDA ADB_MACIO ADB_PMU ADB_KEYBOARD # ADBMOUSE?
	ADB_MACII ADB_MACIISI ADB_IOP

unless PPC_4xx suppress ppc4xxtype
unless PPC_6xx suppress ppc6xxtype ALTIVEC
unless PPC_8xx suppress ppc8xxtype PPC8xx_COPYBACK PPC8xx_CPU6 PCI_QSPAN

derive ALL_PPC from PPC_6xx_GENERIC or POWER3 or POWER4 
derive MACH_SPECIFIC from ALL_PPC
derive MAC_SERIAL from SERIAL!=n and PPC
derive PPC64BRIDGE from POWER3 or POWER4

require PPC_8260 implies PPC_6xx==y
require PPC_8260 or PPC_8xx implies SERIAL_CONSOLE==y
require (APUS or PPC_4xx or PPC_8260) implies PCI==n 
require (PPC_6xx and APUS==n) implies PCI==y

require APUS implies (FB and AMIGA and ZORRO and AMIGAMOUSE!=n)
unless APUS suppress 
	AMIGA_BUILTIN_SERIAL M68K_PRINTER 
require (APUS and (AMIGA_BUILTIN_SERIAL!=n or GVPIOEXT!=n or MULTIFACE_III_TTY!=n))
	implies SERIAL_CONSOLE==y

require PPC implies ISA==n

# from arch/m68k/config.in

# This is the top-level menu for architecture-dependent Motorola 68K stuff

private M68K

unless EXPERIMENTAL suppress dependent M68KFPU_EMU AMIGA_PCMCIA
unless EXPERT suppress RMW_INSNS SINGLE_MEMORY_CHUNK M68060_WRITETHROUGH

menu m68k	# Motorola 68K processor options
	MAC 
	AMIGA		{ZORRO {ZORRO_NAMES} AMIGA_PCMCIA STRAM_SWAP STRAM_PROC} 
	ATARI		{HADES} 
	APOLLO
	VME		{MVME147 MVME16x BVME6000}
	HP300		{DIO}
	SUN3X
	M68020		{M68030 {M68040 {M68060}}}
	M68KFPU_EMU	{M68KFPU_EMU_EXTRAPREC M68KFPU_EMU_ONLY}
	RMW_INSNS SINGLE_MEMORY_CHUNK M68060_WRITETHROUGH
	Q40

unless M68060 suppress M68060_WRITETHROUGH

require HADES implies PCI==y
require (M68K and (HADES==n)) implies PCI==n
derive NUBUS from MAC
derive M68K_L2_CACHE from MAC

require VME implies SERIAL_CONSOLE==y

# from arch/arm/config.in

# This is the top-level menu for architecture-dependent ARM stuff

private ARM

require ARM implies PCMCIA==n

choices armtype	# ARM processor type
	ARCH_ARC ARCH_A5K ARCH_CO285 ARCH_EBSA110 
	ARCH_FOOTBRIDGE ARCH_INTEGRATOR ARCH_RPC ARCH_SA1100 
	# ARCH_CLPS7500 ARCH_L7200
	default ARCH_RPC

derive ARCH_ARCA5K from ARCH_ARC or ARCH_A5K
derive PCI_INTEGRATOR from ARCH_INTEGRATOR and PCI

menu sa1100type	# SA1100 implementation
	SA1100_ASSABET {SA1100_NEPONSET} 
	SA1100_BITSY SA1100_CERF SA1100_BRUTUS # SA1100_EMPEG SA1100_ITSY 
	SA1100_LART 	# SA1100_PLEB 
	SA1100_THINCLIENT SA1100_VICTOR SA1100_NANOENGINE # SA1100_TIFON 
	SA1100_XP860

derive SA1111 from SA1100_ASSABET or SA1100_XP860

default SA1100_BRUTUS from y

unless ARCH_INTEGRATOR suppress CPU_ARM720 CPU_ARM920 CPU_ARM10

menu arm	# ARM port 
	armtype
	HOST_FOOTBRIDGE	{
		footbridge ARCH_EBSA285_ADDIN ARCH_EBSA285_HOST 
		ARCH_CATS ARCH_NETWINDER ARCH_PERSONAL_SERVER
	}
	sa1100type
	PAGESIZE_16 
	CPU_ARM6 CPU_ARM7 CPU_SA110 CPU_ARM720 CPU_ARM920 CPU_ARM10
	ALIGNMENT_TRAP #TEXT_SECTIONS
	ARTHUR?
	LEDS {LEDS_TIMER LEDS_CPU}

derive FOOTBRIDGE from ARCH_FOOTBRIDGE or ARCH_CO285
derive FOOTBRIDGE_HOST from ARCH_CATS or ARCH_EBSA285_HOST  
			or ARCH_NETWINDER or ARCH_PERSONAL_SERVER
derive FOOTBRIDGE_ADDIN from ARCH_CO285 or ARCH_EBSA285_ADDIN
derive ARCH_EBSA285 from ARCH_EBSA285_HOST or ARCH_EBSA285_ADDIN

#default CPU_ARM7 from ARCH_CLPS7500 or ARCH_L7200 
unless FOOTBRIDGE suppress HOST_FOOTBRIDGE

unless CPU_26 suppress PAGESIZE_16

# Easy check for Acorn-style architectures
derive ARCH_ACORN from ARCH_ARCA5K or ARCH_RPC

derive PC_KEYMAP from FOOTBRIDGE_HOST or SA1100_ASSABET

# Figure out whether this system uses 26-bit or 32-bit CPUs.  Nobody has
# ever built a machine that can take both, and now that ARM3 is obsolete
# nobody is likely to either.
derive CPU_26 from ARCH_ARCA5K
derive CPU_32 from (CPU_26==n)

# In CML1, 
#  `or ARCH_TBOX or ARCH_SHARK or ARCH_NEXUSPCI or ARCH_NEXUSPCI'
# was part of this guard. 
derive CPU_32v4 from ARCH_EBSA110 or ARCH_FOOTBRIDGE 
		or ARCH_SA1100 # or ARCH_L7200 or ARCH_INTEGRATOR # or ARCH_CLPS7500
#derive CPU_ARM720 from ARCH_L7200
#derive CPU_SA110 from ARCH_EBSA110 or ARCH_FOOTBRIDGE
#derive CPU_SA1100 from ARCH_SA1100
derive CPU_32v3 from ARCH_RPC
unless ARCH_RPC suppress CPU_ARM6 CPU_ARM7 CPU_SA110

unless CPU_32 and ARCH_EBSA110!=y suppress ALIGNMENT_TRAP #TEXT_SECTIONS
unless CPU_32 suppress ARTHUR

derive ISA_DMA from ARCH_CATS # or ARCH_NETWINDER
require ISA_DMA implies ISA==y

unless ARCH_NETWINDER or ARCH_EBSA110 
	or ARCH_EBSA285 or ARCH_SA1100 or ARCH_CO285 suppress LEDS
unless ARCH_NETWINDER or ARCH_EBSA285 or ARCH_CO285 or ARCH_SA1100
	suppress LEDS_TIMER LEDS_CPU
default LEDS_TIMER from ARCH_EBSA110

derive RPCMOUSE from ARCH_ACORN and BUSMOUSE!=n and ARCH_RPC==y
derive KBDMOUSE from ARCH_ACORN and BUSMOUSE!=n and ARCH_RPC!=y

# from arch/sh/config.in

# This is the top-level menu for architecture-dependent SuperH stuff

private SUPERH

default MEMORY_START from 0x08000000
default GDB_STUB_VBR from 0xa0000000
default HD64461_IRQ from 36

choices superhsys	# SuperH system type
	SH_GENERIC SH_SOLUTION_ENGINE SH_OVERDRIVE SH_HP600 SH_CQREEK SH_UNKNOWN default SH_GENERIC

choices superhtype	# SuperH processor type
	CPU_SUBTYPE_SH7707 CPU_SUBTYPE_SH7708 CPU_SUBTYPE_SH7709 CPU_SUBTYPE_SH7750
	default CPU_SUBTYPE_SH7708

menu superh	# SuperH options
	superhsys
	superhtype
	MEMORY_START@
	HD64461
	HD64461_IRQ@
	HD64461_ENABLER
	SH_STANDARD_BIOS
	SH_EARLY_PRINTK
	GDB_STUB_VBR@
	CF_ENABLER

unless SH_GENERIC or SH_SOLUTION_ENGINE suppress CF_ENABLER
unless HD64461 suppress HD64461_IRQ
unless HD64461 suppress HD64461_ENABLER

derive CPU_SH3 from CPU_SUBTYPE_SH7707 or CPU_SUBTYPE_SH7708 or CPU_SUBTYPE_SH7709
derive CPU_SH4 from CPU_SUBTYPE_SH7750

# from arch/ia64/config.in

# This is the top-level menu for architecture-dependent Itanium stuff

# FIXME: We don't do CONFIG_IA64_HP_SIM because I can't find where it's set.
# This means we don't set CONFIG_SIMETH, CONFIG_SIM_SERIAL or CONFIG_SCSI_SIM.

#private IA64
#derive SWIOTLB from y	# for now...

unless EXPERIMENTAL suppress ACPI_KERNEL_CONFIG

choices ia64type	# Itanium processor type
	IA64_GENERIC IA64_HP_SIM IA64_SGI_SN1 IA64_DIG
	default IA64_GENERIC

choices pagesize	# Kernel page size
	IA64_PAGE_SIZE_4KB IA64_PAGE_SIZE_8KB 
	IA64_PAGE_SIZE_16KB IA64_PAGE_SIZE_64KB
	default IA64_PAGE_SIZE_16KB

default IA64_MCA from IA64_SGI_SN1

menu ia64	# Itanium processors
	ia64type
	pagesize
	ITANIUM_ASTEP_SPECIFIC {ITANIUM_A1_SPECIFIC} 
	ITANIUM_BSTEP_SPECIFIC {ITANIUM_B0_SPECIFIC} 
	IA64_HAVE_IRQREDIR ITANIUM_PTCG IA64_SOFTSDV_HACKS
	IA64_AZUSA_HACKS #IA64_FW_EMU IA64_IRQ_ACPI
	IA64_MCA SKB_BELOW_4GB ACPI_KERNEL_CONFIG
	PERFMON
	IA64_PALINFO

derive IA64_BRL_EMU from IA64_DIG or IA64_SGI_SN1
derive IA64_SGI_IO from IA64_SGI_SN1

#default IA64_IRQ_ACPI from y

default IA64_SOFTSDV_HACKS from IA64_GENERIC or IA64_SGI_SN1
derive IA64_NUMA from IA64_SGI_SN1

unless IA64_DIG suppress 
	ITANIUM_ASTEP_SPECIFIC ITANIUM_A1_SPECIFIC
	IA64_AZUSA_HACKS 
	# IA64_FW_EMU 
	IA64_MCA 
	# IA64_IRQ_ACPI

# from arch/s390/config.in

# This is the top-level menu for architecture-dependent System 390 stuff

private S390

menu s390	# System 390 processor options
	FAST_IRQ 
	IPL {s390_ipl}
	CHANDEV
	# These should move to cdevs 
	IBM_3215 {IBM_3215_CONSOLE}
	HWC {HWC_CONSOLE}

choices s390_ipl	# IPL method generated into head.S
	IPL_TAPE IPL_VM
	default IPL_TAPE

require S390 implies ISA==n and PCI==n and PNP==n and MCA==n and TC==n 
	and PARPORT==n and HOTPLUG==n and IDE==n and SCSI==n 
	and CD_NO_IDESCSI==n and USB==n	and IEEE1394==n and ADB==n 
	and BINFMT_AOUT==y and BINFMT_MISC==n

# System bus configuration

unless OBSOLETE suppress CD_NO_IDESCSI MCA
unless X86 suppress MCA
unless MIPS32 suppress TC
unless (PCI and (X86 or SUPERH)) suppress pci_access
unless (ISA or PCI) suppress IDE
unless (X86 or ALPHA or MIPS32 or PPC) suppress usb
unless (X86 and PCI and EXPERIMENTAL) or PPC or ARM or SPARC suppress IEEE1394
unless (M68K or PPC) suppress ADB
unless SPARC suppress FC4

menu buses	# Select system buses and controller types
	ISA 		{EISA}
	PCI		{PCI_NAMES pci_access}
	PNP?		{ISAPNP?}
	MCA
	TC
	PARPORT?
	HOTPLUG		{PCMCIA?}
	IDE
	SCSI?
	CD_NO_IDESCSI
	USB?
	IEEE1394?
	ADB
	I2O?
	FC4?

unless ISA suppress dependent ISAPNP

choices pci_access	# PCI access mode
	PCI_GOBIOS PCI_GODIRECT PCI_GOANY
	default PCI_GOANY

unless (TC or (MIPS32==n)) suppress PARPORT
derive PCI_BIOS from PCI_GOBIOS or PCI_GOANY
derive PCI_DIRECT from PCI_GODIRECT or PCI_GOANY

# Feature selections independent across all ports

unless EXPERIMENTAL suppress dependent kcore

menu generic
	MODULES {MODVERSIONS KMOD}
	NET SYSVIPC BSD_PROCESS_ACCT SYSCTL
	kcore
	BINFMT_AOUT? BINFMT_ELF? BINFMT_MISC?
	SMP

require SMP implies (X86 or ALPHA_SABLE or ALPHA_RAWHIDE 
		or ALPHA_DP264 or ALPHA_WILDFIRE or ALPHA_TITAN 
		or ALPHA_GENERIC or SPARC32 or MIPS64 or S390)

unless X86 or ALPHA or SPARC suppress kcore BINFMT_AOUT BINFMT_ELF
unless X86 or ALPHA or SPARC or S390 suppress BINFMT_ELF
unless (ARM==n) or (ARCH_ACORN or PCI) suppress SOUND

choices kcore 
	KCORE_ELF KCORE_AOUT
	default KCORE_ELF

# Policy options

menu policy	# Build policy options
	EXPERIMENTAL 
	OBSOLETE
	EXPERT
	WIZARD
	TUNING

# Kernel hacking

default KDB_STBSIZE from 10000
default PROFILE_SHIFT from 2

unless SERIAL!=n or (S390 and CTC) suppress REMOTE_DEBUG

menu kernelhacking # Kernel-hacking options
	# DEBUG_MALLOC
	KGDB
	XMON
	REMOTE_DEBUG
	FRAME_POINTER DEBUG_ERRORS DEBUG_USER DEBUG_INFO
	NO_PGT_CACHE
	DEBUG_LL
	DEBUG_DC21285_PORT
	MAGIC_SYSRQ
	DEBUG_KERNEL_WITH_GDB_STUB
	IA64_EARLY_PRINTK IA64_DEBUG_CMPXCHG IA64_DEBUG_IRQ IA64_PRINT_HAZARDS IA64_NEW_UNWIND DISABLE_VHPT
	KDB {KDB_FRAMEPTR KDB_STBSIZE%} IA32_SUPPORT?
	PROFILE {PROFILE_SHIFT%}

unless PPC suppress KGDB XMON
unless MIPS suppress REMOTE_DEBUG 
unless ARM suppress FRAME_POINTER DEBUG_ERRORS DEBUG_USER DEBUG_INFO
unless ARM and CPU_26 suppress NO_PGT_CACHE
# These options are only for real kernel hackers
# who want to get their hands dirty.
unless EXPERIMENTAL and ARM suppress DEBUG_LL 
unless DEBUG_LL and FOOTBRIDGE suppress DEBUG_DC21285_PORT
unless SUPERH suppress DEBUG_KERNEL_WITH_GDB_STUB
unless IA64 suppress 
	IA64_EARLY_PRINTK IA64_DEBUG_CMPXCHG IA64_DEBUG_IRQ IA64_PRINT_HAZARDS
	KDB IA32_SUPPORT IA64_NEW_UNWIND
unless S390 suppress PROFILE

# Tie architecture-dependent derivations together here

derive NUMA from IA64_NUMA or MIPS_NUMA
derive HAVE_DEC_LOCK from (SMP and X86_CMPXCHG) or SPARC
derive HIGHMEM from HIGHMEM64G or SPARC

# Main menu

unless EXPERIMENTAL suppress dependent MDA_CONSOLE video

menu main	# Configure a Linux kernel
	arch
	policy
	generic
	# Per-processor options (selected in arch)
	x86
	alpha
	sparc
	mips
	ppc
	m68k
	arm
	superh
	ia64
	s390
	# Buses and controller types
	buses
	parport
	#pcmcia
	scsi_devices scsi_drivers
	nativecdrom
	fc4
	usb
	ieee1394
	adb
	i2o
	# Device classes
	pm
	archihacks
	MTD {mtd}
	block_devices
	net
	NETDEVICES {net_drivers atm}
	telephony
	HAMRADIO {hamradio}
	INPUT {input}
	cdevs
	fs
	SOUND? {sound}
	WATCHDOG {watchdog}
	kernelhacking

default HEARTBEAT from HP300	# Has a dedicated heartbeat LED

# Some of these may be more restrictive than needed; they are a straight
# translation of the CML1 code (except SGI turns into MIPS)
unless X86 suppress x86
unless ALPHA suppress alpha
unless SPARC suppress sparc
unless MIPS suppress mips
unless PPC suppress ppc
unless M68K suppress m68k
unless ARM suppress arm
unless SUPERH suppress superh
unless IA64 suppress ia64
unless S390 suppress s390
unless (S390==n) suppress buses parport
# Always query block_devices
unless CD_NO_IDESCSI suppress dependent nativecdrom
unless I2O!=n suppress dependent i2o
unless X86 or IA64 or (ARM and EXPERIMENTAL) suppress pm
unless ADB suppress dependent adb
unless ISA or PCI suppress telephony
unless IEEE1394!=n suppress dependent ieee1394
unless X86 or ARM or (MIPS and DECSTATION==n and SGI_IP22==n) suppress i2o
unless (MIPS==n) and (DECSTATION==n) and (BAGET_MIPS==n) suppress HAMRADIO
unless X86 or ALPHA or (MIPS and DECSTATION and BAGET_MIPS) or PPC suppress 
	nativecdrom
unless FC4!=n suppress dependent fc4
unless (S390==n) suppress cdevs
unless USB!=n suppress dependent usb 
# Always query for fs
unless SPARC suppress WATCHDOG
unless WIZARD suppress kernelhacking

# Icon for the linux-kernel rulesystem (base64 encoding of a penguin image)
icon
R0lGODlhMQAVAPcEAAEBAgICAwEAAAAABAICBAQDBAQEBAYGBAUFBwUFAQcHCAAADQcICAkJBA0N
BAoKCQwMDQICFg4OEA8PGhMTBBAQBBUVBBcXBBgXBBsbBRkZBB4eAx4eBBERERISEhMTFBcTExYW
FhcXGRQVGBQVHRcYGhkaFhsbGxwcHRERJxwbIh8fIhsbLB0fLh4gIiMjBSEhBCcnAiUlBCUlDioq
BC0tBC4uAiQhGyIiHC4nHC8rHToqBTAmFjExBDU1BDc3BDk5BDo6BD88AD4+BDg4HSEhIScnJyYm
JCYnKSkqJygpKyssKiwsLSkqMTApIDAuKzAwJTMyLjg1LTExNzY2NFs/AEg4F0FBBERDBEVFBEZG
BkJCAkpKBExMBE5OCUtLEFdBDFBAGFBPE1NTBFFRBFRUBFJSDVlWAlpaBV1dBV1bBVxbCVRUHE9P
IVVNKVdXNWlNAmRcAWZdDW9UGG1YFHFSAHZdAWJiBGdnBGtgBWtrBG5qBW1tBG9vFHFhF3JyBXNz
Anp6BHx8BHR2HXZoBmNjJWRkInZkNHFxI39xNlJTWXd3SXt8Q39/foZkBoxuA4hwA5JrBZB0Bpx6
B4KCBIaGBIyFAoqKBI+PBIiIAImJCoaGFY2HF4mJFpGRBJaXBJGRApyTAZubBJ2dA5SUEIKCLqOj
BKWlBKmpBKyrBK6uBKyjC6ioFLauBrGxBLe3BLW1ALq6BL2+BLy5A7u7Jb+8OICAY4qKfK6uTcHB
BMXGA8bFBMTFDMrKBM3NBM7OAMrJDcbGEcnIGc/SAtfLBNLSBNLUA9bWBNTUAN7eBNnaD9XWENrW
ENvbENjVJd3dLN/gJOPiA+PjBOHhBOXlBObmCOrqBO3tBO7uBunpA/DwBfb2Avf3BPX1BPv6Afv7
Bfj4BP//AP//A/39BP//BP//BufnN8jJTdjYQ9jYRcfHVpGRkJ+flJeXopSUqJiYpZycq56gkaqq
gKGhmqOjpaSkpKGhqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAKAPcAIf4OTWFkZSB3
aXRoIEdJTVAALAAAAAAxABUAAAj+AAkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC
BAgQIEAgQIAAAQIQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ
IEAggIEPJzoYCECAAAECBAgQIECAAAECBAgQIECAAAECBAwQIECAAAECBAgQIECAAAECBAgQIEAg
gIIiR4ocKWKAAAECBAgQIECAAAECBAgQIECAAAECBAgQaGCAAAECBAgQIECAAAECBAgQIECAQIAT
IwIEeIACRQACBAgQIECAAAECBDjA0MABhgECBAwQyGJtFAECBAgQIECAAAECBAj+ECBAgAABAkcg
BHjQgcARBQEIECBAgAABAgQImLIG7losgBYIEDBAoBI5aRwIECBAgAABAgQIECBAgAABAgQMHFHS
ZIoiBkcgBCBAgAABAgQIECBgQBa5WGSuECBggECFT5iyEDBAgIABAwQIECBgwIABAgQIEEhyg44f
NxCQhAhgwAABAgQIECBAgIAvcqdqOCBAgAABAjS4VCBAoEEFAgQqNCBAgAABAgQMEAjQgscjSXMe
QFERgAABAgQIECBAgICFa+QuOSBggACWU72SWSAQ6JS1QDRyadtVgQCQSqhyWQjwgJWyRIdqLdNW
aAEHWbswECBAwAABIOS48TH+QMAAgR+uyFm70iAQNXLFUKECR44PASCuyEn7QYAIuG2M4p1rJi7Y
Cl3UyKEhQICAAQJ3yEkjQ4AAAQME0pArloUAQAfFyL0CAqQYuU8NCOgh52tLBEPkkCGy16gUuWy8
NJE5pccAAQIGCHgi1wsIAQMEDBCgRO4VDQIctJH706PBMXKBHBDARM5VjBSbxM1aRG/eu2figImx
oeEHAQIEDBCQRc6VDAIECBgg8IqcKA0ErpCzloaADHLX0hggEIscqBksTpEbZaseO3fqxO368oAA
AQIECBCoII3cJw0EZPiSQUAaOUoVCPAhdywLATLkimUh0EAaOUA4Jvwil+n+Frx286Bt29ZGQgIC
BAgYIFCDHDc8BgjoIXeFBjluaAgQEEVOVg8Cl8i54kCABjluaaZw8ratzzp08syt4iWuU4QABAgY
IGDhFDluqgT9SXaNCxBy5HJVsuCLnCkOBFCRo+YJoAwL3MRVY0aMnDhh6cSRcyYnlLhrpLIQMGCA
QA1Ur3btiiXrVaohBEYdy/WnxqVdlCoQ+NHLl6gfBPhE02UpzyxjsnDRgjWIUKRWw3atMUCAAAEC
HLpwyXLlyhUyMghUINNlCIwGXLg0IECgR5krPwwQ8KImDqRHe86weZNFiKNJdtaYyWKBAAECBAwQ
IECAAAECBAgQIEDAAAGVAgYIECBAwAABAwQIEAjQQYcVMHDq7CBxYgSIKnDCSDFhgAABAgQIECBA
gAABAgQIECBAgAABAgQIECBAgAABAgQIGCBAwIAEF0yi5Hgy5cgSKjmcIIEQgAABAgQIECBAgAAB
AgQIECBAgAABAgQIECBAgAABAgQIECBAgACBAAEMdCgBsEOBAAEejAjRgAABAgQIBAQAOw==

# The following sets edit modes for GNU EMACS
# Local Variables:
# compile-command:"cmlcompile.py kernel-rules.cml"
# End: