/* Configuration - (device configuration specifications) */

/* "type" declarations for both real- and pseudo- devices */

/* PC keyboard and monitor (normally console device) */

kbmon:
	on HARDWARE	-i kbminit	-o ionull	-c ionull
			-r kbmread	-w kbmwrite	-s ioerr
			-n kbmcntl	-g kbmgetc	-p kbmputc
			-iint kbmint	-oint ioerr

serial:
	on HARDWARE	-i cominit	-o ionull	-c ionull
			-r ionull	-w comwrite	-s ioerr
			-n comcntl	-g comgetc	-p computc
			-iint comint	-oint ioerr

/* tty pseudo-devices */
tty:
	on HARDWARE	-i ttyinit	-o ttyopen	-c ionull 
			-r ttyread	-w ttywrite	-s ioerr
			-n ttycntl	-g ttygetc	-p ttyputc
			-iint ttyiin

/* Ethernet using SMC Ultra interface */
/*
eth:
	on ULTRA	-i ue_init	-o ioerr	-c ioerr 
			-r ioerr	-w ue_write	-s ioerr
			-n ue_cntl	-g ioerr	-p ioerr
			-iint ue_intr	-oint ue_intr
*/

/* Ethernet using Intel EtherExpress16 interface */
eth:
	on EXPRESS	-i ee_init	-o ioerr	-c ioerr 
			-r ee_read	-w ee_write	-s ioerr
			-n ee_cntl	-g ioerr	-p ioerr
			-iint ee_intr	-oint ee_intr

/* "Othernet" using a Ethernet interface */
/*oth:
	on ETHER	-i othinit	-o ioerr	-c ioerr 
			-r ioerr	-w othwrite	-s ioerr
			-n ioerr	-g ioerr	-p ioerr
			-iint ioerr	-oint ioerr
*/


/* Datagram interface to network (master device) */
dgm:
	on ETH		-i ionull	-o dgmopen	-c ioerr 
			-r ioerr	-w ioerr	-s ioerr
			-n dgmcntl	-g ioerr	-p ioerr
			-iint ioerr	-oint ioerr	-csr 0
			-ivec 0		-ovec 0

/* A datagram "connection"  (pseudo-device returned by dgm open) */
dg:
	on ETH		-i dginit	-o ioerr	-c dgclose
			-r dgread	-w dgwrite	-s ioerr
			-n dgcntl	-g ioerr	-p ioerr
			-iint ioerr	-oint ioerr	-csr 0
			-ivec 0		-ovec 0

/* Streams interface to network (master device) */
tcpm:
	on ETH		-i ionull	-o tcpmopen	-c ioerr 
			-r ioerr	-w ioerr	-s ioerr
			-n tcpmcntl	-g ioerr	-p ioerr
			-iint ioerr	-oint ioerr	-csr 0
			-ivec 0		-ovec 0

/* A tcp "connection"  (pseudo-device returned by tcpm open) */
tcp:
	on ETH		-i tcpinit	-o ioerr	-c tcpclose
			-r tcpread	-w tcpwrite	-s ioerr
			-n tcpcntl	-g tcpgetc	-p tcpputc
			-iint ioerr	-oint ioerr	-csr 0
			-ivec 0		-ovec 0

/* Remote file system master device (open to get rf device) */
rfm:
	on DGM		-i ioerr	-o rfopen	-c ioerr
			-r ioerr	-w ioerr	-s ioerr
			-n rfcntl	-g ioerr	-p ioerr
			-iint ioerr	-oint ioerr	-csr 0
			-ivec 0		-ovec 0

/* A remote file (pseudo-device returned by rfm open) */
rf:
	on DGM		-i rfinit	-o ioerr	-c rfclose 
			-r rfread	-w rfwrite	-s rfseek
			-n rfcntl	-g rfgetc	-p rfputc
			-iint ioerr	-oint ioerr	-csr 0
			-ivec 0		-ovec 0

/* Name system (topmost level of name resolution mechanism) */
nam:
	on TOP		-i naminit	-o namopen	-c ioerr
			-r ioerr	-w ioerr	-s ioerr
			-n ioerr	-g ioerr	-p ioerr
			-iint ioerr	-oint ioerr	-csr 0
			-ivec 0		-ovec 0
%

/* The physical PC keyboard and monitor */

CONSOLE		is tty  	on HARDWARE
SERIAL0		is serial	on HARDWARE	csr 0x3f8 ivec 36
SERIAL1		is serial	on HARDWARE	csr 0x2f8 ivec 35
KBMON		is kbmon	on HARDWARE	ivec=33
TTY0		is tty		on HARDWARE
TTY1		is tty		on HARDWARE
TTY2		is tty		on HARDWARE

/* Physical ethernet raw packet interface */
ETHER		is eth	on EXPRESS	csr=0x250 ivec=37

/*
OTHER1	is oth on ETHER 
OTHER2	is oth on ETHER
*/


/* Datagram network interface (master pseudo-device) */

UDP	is dgm	on ETH

/* Pseudo-device slots for datagram "connections" */

DGRAM0		is dg	on ETH
DGRAM1		is dg	on ETH
DGRAM2		is dg	on ETH
DGRAM3		is dg	on ETH
DGRAM4		is dg	on ETH
DGRAM5		is dg	on ETH
DGRAM6		is dg	on ETH
DGRAM7		is dg	on ETH
DGRAM8		is dg	on ETH
DGRAM9		is dg	on ETH
DGRAMA		is dg	on ETH
DGRAMB		is dg	on ETH
DGRAMC		is dg	on ETH
DGRAMD		is dg	on ETH
DGRAME		is dg	on ETH
DGRAMF		is dg	on ETH

/* TCP network interface (master pseudo-device) */

TCP	is tcpm	on ETH

/* Pseudo-device slots for TCP "connections" */

TCP0		is tcp	on ETH
TCP1		is tcp	on ETH
TCP2		is tcp	on ETH
TCP3		is tcp	on ETH
TCP4		is tcp	on ETH
TCP5		is tcp	on ETH
TCP6		is tcp	on ETH
TCP7		is tcp	on ETH
TCP8		is tcp	on ETH
TCP9		is tcp	on ETH
TCPA		is tcp	on ETH
TCPB		is tcp	on ETH
TCPC		is tcp	on ETH
TCPD		is tcp	on ETH
TCPE		is tcp	on ETH
TCPF		is tcp	on ETH

/* Remote file system interface (master pseudo-device) */

RFILSYS		is rfm	on DGM

/* Pseudo-device slots for remote files */

RFILE1		is rf	on DGM
RFILE2		is rf	on DGM
RFILE3		is rf	on DGM
RFILE4		is rf	on DGM


/* Pseudo device for the abstract (file) name space */

NAMESPACE	is nam	on TOP


%

/* Configuration and Size Constants */

#define	LITTLE_ENDIAN	0x1234
#define	BIG_ENDIAN	0x4321

#define	BYTE_ORDER	LITTLE_ENDIAN

#define	CONTACT     "dds@cs.purdue.edu"	/* administrative contact	*/
#define	LOCATION    "PC Lab"		/* Host's physical location	*/

#define	NPROC	    50			/* number of user processes	*/
#define	NSEM	    100			/* number of semaphores		*/
#define	MEMMARK				/* define if memory marking used*/
#define	RTCLOCK				/* now have RTC support		*/
#define	STKCHK				/* resched checks stack overflow*/
#define	NETDAEMON			/* Ethernet network daemon runs	*/
/*#define NETMON			/* define for network monitor	*/
/*#define OSPF				/* define if using OSPF		*/
/*#define RIP				/* define if using RIP		*/
/*#define MULTICAST*/			/* define if using multicasting	*/

#ifdef	OSPF
#define	MULTICAST			/* OSPF uses multicasting	*/
#endif	/* OSPF */

#define	DEFAULT_IPADDR1	"128.211.1.243" /* my IP address		*/
#define	DEFAULT_ROUTER	"128.211.1.250" /* default router		*/
#define	DEFAULT_TSERVER	"128.211.1.10:37"/* Time server address		*/
#define	DEFAULT_RSERVER	"128.10.15.64:2001"/* Remote file server address*/
#define	DEFAULT_NSERVER	"128.211.1.10:53"  /* Domain Name server address*/
#define	DEFAULT_NETMASK	 0xffffff00	/* default subnet mask		*/
#ifdef WIRELESS
#define	DEFAULT_WIRELESSIP "128.211.1.99" /* wrieless I/F IP address	*/
#endif

#define TSERVERPORT    37
#define RSERVERPORT  2001
#define NSERVERPORT    53

#define	BINGID	9			/* Othernet simlated net param. */

#define	SMALLMTU	400		/* for OTHER2; sim. small MTU	*/

#define	BPMAXB	8192			/* max buffer size for mkpool	*/
#define BPMAXN	128			/* max # buffers in a buf pool	*/

#define	TCPSBS	4096			/* TCP send buffer sizes	*/
#define	TCPRBS	8192			/* TCP receive buffer sizes	*/

#define	NPORTS	100

#define	TIMERGRAN	1		/* timer granularity, secs/10	*/

#define	NAREA		1		/* max number of OSPF Areas	*/

#ifndef	Noth
#define	Noth	0
#endif	!Noth
#ifndef	Ndg
#define	Ndg	0
#endif
