xref: /csrg-svn/sys/hp300/hp300/conf.c (revision 47583)
141475Smckusick /*
241475Smckusick  * Copyright (c) 1982, 1990 Regents of the University of California.
341475Smckusick  * All rights reserved.
441475Smckusick  *
541475Smckusick  * %sccs.include.redist.c%
641475Smckusick  *
7*47583Smccanne  *	@(#)conf.c	7.5 (Berkeley) 03/19/91
841475Smckusick  */
941475Smckusick 
1045788Sbostic #include "sys/param.h"
1145788Sbostic #include "sys/systm.h"
1245788Sbostic #include "sys/buf.h"
1345788Sbostic #include "sys/ioctl.h"
1445788Sbostic #include "sys/tty.h"
1545788Sbostic #include "sys/conf.h"
1641475Smckusick 
1747581Skarels int	nullop(), enxio(), enodev(), rawread(), rawwrite(), swstrategy();
1841475Smckusick 
1941475Smckusick #include "ct.h"
2041475Smckusick #if NCT > 0
2141475Smckusick int	ctopen(),ctclose(),ctstrategy(),ctread(),ctwrite(),ctdump(),ctioctl();
2241475Smckusick #else
2347581Skarels #define	ctopen		enxio
2447581Skarels #define	ctclose		enxio
2547581Skarels #define	ctstrategy	enxio
2647581Skarels #define	ctread		enxio
2747581Skarels #define	ctwrite		enxio
2847581Skarels #define	ctdump		enxio
2947581Skarels #define	ctioctl		enxio
3041475Smckusick #endif
3141475Smckusick 
3241475Smckusick #include "rd.h"
3341475Smckusick #if NRD > 0
3441475Smckusick int	rdopen(),rdstrategy(),rdread(),rdwrite(),rddump(),rdioctl(),rdsize();
3541475Smckusick #else
3647581Skarels #define	rdopen		enxio
3747581Skarels #define	rdstrategy	enxio
3847581Skarels #define	rdread		enxio
3947581Skarels #define	rdwrite		enxio
4047581Skarels #define	rddump		enxio
4147581Skarels #define	rdioctl		enxio
4241475Smckusick #define	rdsize		0
4341475Smckusick #endif
4441475Smckusick 
4541475Smckusick #include "sd.h"
4641475Smckusick #if NSD > 0
4741475Smckusick int	sdopen(),sdstrategy(),sdread(),sdwrite(),sddump(),sdioctl(),sdsize();
4841475Smckusick #else
4947581Skarels #define	sdopen		enxio
5047581Skarels #define	sdstrategy	enxio
5147581Skarels #define	sdread		enxio
5247581Skarels #define	sdwrite		enxio
5347581Skarels #define	sddump		enxio
5447581Skarels #define	sdioctl		enxio
5541475Smckusick #define	sdsize		0
5641475Smckusick #endif
5741475Smckusick 
5841475Smckusick #include "cd.h"
5941475Smckusick #if NCD > 0
6041475Smckusick int	cdopen(),cdstrategy(),cdread(),cdwrite(),cddump(),cdioctl(),cdsize();
6141475Smckusick #else
6247581Skarels #define	cdopen		enxio
6347581Skarels #define	cdstrategy	enxio
6447581Skarels #define	cdread		enxio
6547581Skarels #define	cdwrite		enxio
6647581Skarels #define	cddump		enxio
6747581Skarels #define	cdioctl		enxio
6841475Smckusick #define	cdsize		0
6941475Smckusick #endif
7041475Smckusick 
7141475Smckusick struct bdevsw	bdevsw[] =
7241475Smckusick {
7341475Smckusick 	{ ctopen,	ctclose,	ctstrategy,	ctioctl,	/*0*/
7441475Smckusick 	  ctdump,	0,		B_TAPE },
7547581Skarels 	{ enxio,	enxio,		enxio,		enxio,		/*1*/
7647581Skarels 	  enxio,	0,		0 },
7747581Skarels 	{ rdopen,	nullop,		rdstrategy,	rdioctl,	/*2*/
7841475Smckusick 	  rddump,	rdsize,		0 },
7947581Skarels 	{ enodev,	enodev,		swstrategy,	enodev,		/*3*/
8047581Skarels 	  enodev,	0,		0 },
8147581Skarels 	{ sdopen,	nullop,		sdstrategy,	sdioctl,	/*4*/
8241475Smckusick 	  sddump,	sdsize,		0 },
8347581Skarels 	{ cdopen,	nullop,		cdstrategy,	cdioctl,	/*5*/
8441475Smckusick 	  cddump,	cdsize,		0 },
8547581Skarels 	/* 6 was "fd" vnode device */
8641475Smckusick };
8741475Smckusick int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
8841475Smckusick 
8947581Skarels int	cnopen(), cnclose(), cnread(),  cnwrite(), cnioctl(), cnselect();
9041475Smckusick 
9147581Skarels int	cttyopen(), cttyread(), cttywrite(), cttyioctl(), cttyselect();
9241475Smckusick 
9341475Smckusick int 	mmrw();
9441475Smckusick #define	mmselect	seltrue
9541475Smckusick 
9641475Smckusick #include "pty.h"
9741475Smckusick #if NPTY > 0
9841475Smckusick int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();
9941475Smckusick int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();
10041475Smckusick int	ptyioctl();
10141475Smckusick struct	tty pt_tty[];
10241475Smckusick #else
10347581Skarels #define ptsopen		enxio
10447581Skarels #define ptsclose	enxio
10547581Skarels #define ptsread		enxio
10647581Skarels #define ptswrite	enxio
10747581Skarels #define ptcopen		enxio
10847581Skarels #define ptcclose	enxio
10947581Skarels #define ptcread		enxio
11047581Skarels #define ptcwrite	enxio
11147581Skarels #define ptyioctl	enxio
11241475Smckusick #define	pt_tty		0
11347581Skarels #define	ptcselect	enxio
11447581Skarels #define	ptsstop		nullop
11541475Smckusick #endif
11641475Smckusick 
11741475Smckusick #include "ppi.h"
11841475Smckusick #if NPPI > 0
11945751Smckusick int	ppiopen(),ppiclose(),ppiread(),ppiwrite(),ppiioctl();
12041475Smckusick #else
12147581Skarels #define ppiopen		enxio
12247581Skarels #define ppiclose	enxio
12347581Skarels #define ppiread		enxio
12447581Skarels #define ppiwrite	enxio
12547581Skarels #define ppiioctl	enxio
12641475Smckusick #endif
12741475Smckusick 
12841475Smckusick #include "ite.h"
12941475Smckusick #if NITE > 0
13041475Smckusick int	iteopen(),iteclose(),iteread(),itewrite(),iteioctl();
13141475Smckusick struct	tty ite_tty[];
13241475Smckusick #else
13347581Skarels #define iteopen		enxio
13447581Skarels #define iteclose	enxio
13547581Skarels #define iteread		enxio
13647581Skarels #define itewrite	enxio
13747581Skarels #define itestop		nullop
13847581Skarels #define iteioctl	enxio
13941475Smckusick #define ite_tty		0
14041475Smckusick #endif
14141475Smckusick 
14241475Smckusick #include "dca.h"
14341475Smckusick #if NDCA > 0
14441475Smckusick int	dcaopen(),dcaclose(),dcaread(),dcawrite(),dcastop(),dcaioctl();
14541475Smckusick struct	tty dca_tty[];
14641475Smckusick #else
14747581Skarels #define dcaopen		enxio
14847581Skarels #define dcaclose	enxio
14947581Skarels #define dcaread		enxio
15047581Skarels #define dcawrite	enxio
15147581Skarels #define dcastop		nullop
15247581Skarels #define dcaioctl	enxio
15341475Smckusick #define dca_tty		0
15441475Smckusick #endif
15541475Smckusick 
15641475Smckusick #include "dcm.h"
15741475Smckusick #if NDCM > 0
15841475Smckusick int	dcmopen(),dcmclose(),dcmread(),dcmwrite(),dcmstop(),dcmioctl();
15941475Smckusick struct	tty dcm_tty[];
16041475Smckusick #else
16147581Skarels #define dcmopen		enxio
16247581Skarels #define dcmclose	enxio
16347581Skarels #define dcmread		enxio
16447581Skarels #define dcmwrite	enxio
16547581Skarels #define dcmstop		nullop
16647581Skarels #define dcmioctl	enxio
16741475Smckusick #define dcm_tty		0
16841475Smckusick #endif
16941475Smckusick 
17041475Smckusick #include "clock.h"
17141475Smckusick #if NCLOCK > 0
17241475Smckusick int	clockopen(),clockclose(),clockioctl(),clockmap();
17341475Smckusick #else
17447581Skarels #define clockopen	enxio
17547581Skarels #define clockclose	enxio
17647581Skarels #define clockioctl	enxio
17747581Skarels #define clockmap	enxio
17841475Smckusick #endif
17941475Smckusick 
180*47583Smccanne #include "bpfilter.h"
181*47583Smccanne #if NBPFILTER > 0
182*47583Smccanne int	bpfopen(),bpfclose(),bpfread(),bpfwrite(),bpfioctl(),bpfselect();
183*47583Smccanne #else
184*47583Smccanne #define bpfopen		enxio
185*47583Smccanne #define bpfclose	enxio
186*47583Smccanne #define bpfread		enxio
187*47583Smccanne #define bpfwrite	enxio
188*47583Smccanne #define bpfioctl	enxio
189*47583Smccanne #define bpfselect	enxio
190*47583Smccanne #endif
191*47583Smccanne 
19241475Smckusick int	logopen(),logclose(),logread(),logioctl(),logselect();
19341475Smckusick 
19447581Skarels int	fdopen();
19547581Skarels 
19641475Smckusick int	ttselect(), seltrue();
19741475Smckusick 
19841475Smckusick int	grfopen(),grfclose(),grfioctl(),grfselect(),grfmap();
19941475Smckusick 
20041475Smckusick int	hilopen(),hilclose(),hilioctl(),hilmap(),hilselect(),hilread();
20141475Smckusick 
20241475Smckusick struct cdevsw	cdevsw[] =
20341475Smckusick {
20447581Skarels 	{ cnopen,	cnclose,	cnread,		cnwrite,	/*0*/
20547581Skarels 	  cnioctl,	nullop,		nullop,		NULL,
20647581Skarels 	  cnselect,	enodev,		NULL },
20747581Skarels 	{ cttyopen,	nullop,		cttyread,	cttywrite,	/*1*/
20847581Skarels 	  cttyioctl,	nullop,		nullop,		NULL,
20947581Skarels 	  cttyselect,	enodev,		NULL },
21047581Skarels 	{ nullop,	nullop,		mmrw,		mmrw,		/*2*/
21147581Skarels 	  enodev,	nullop,		nullop,		NULL,
21247581Skarels 	  mmselect,	enodev,		NULL },
21347581Skarels 	{ nullop,	nullop,		rawread,	rawwrite,	/*3*/
21447581Skarels 	  enodev,	enodev,		nullop,		NULL,
21547581Skarels 	  enodev,	enodev,		swstrategy },
21647581Skarels 	{ ptsopen,	ptsclose,	ptsread,	ptswrite,	/*4*/
21747581Skarels 	  ptyioctl,	ptsstop,	nullop,		pt_tty,
21847581Skarels 	  ttselect,	enodev,		NULL },
21947581Skarels 	{ ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*5*/
22047581Skarels 	  ptyioctl,	nullop,		nullop,		pt_tty,
22147581Skarels 	  ptcselect,	enodev,		NULL },
22247581Skarels 	{ logopen,	logclose,	logread,	enodev,		/*6*/
22347581Skarels 	  logioctl,	enodev,		nullop,		NULL,
22447581Skarels 	  logselect,	enodev,		NULL },
22547581Skarels 	{ ctopen,	ctclose,	ctread,		ctwrite,	/*7*/
22647581Skarels 	  ctioctl,	enodev,		nullop,		NULL,
22747581Skarels 	  seltrue,	enodev,		ctstrategy },
22847581Skarels 	{ sdopen,	nullop,		sdread,		sdwrite,	/*8*/
22947581Skarels 	  sdioctl,	enodev,		nullop,		NULL,
23047581Skarels 	  seltrue,	enodev,		sdstrategy },
23147581Skarels 	{ rdopen,	nullop,		rdread,		rdwrite,	/*9*/
23247581Skarels 	  rdioctl,	enodev,		nullop,		NULL,
23347581Skarels 	  seltrue,	enodev,		rdstrategy },
23447581Skarels 	{ grfopen,	grfclose,	nullop,		nullop,		/*10*/
23547581Skarels 	  grfioctl,	enodev,		nullop,		NULL,
23647581Skarels 	  grfselect,	grfmap,		NULL },
23747581Skarels 	{ ppiopen,	ppiclose,	ppiread,	ppiwrite,	/*11*/
23847581Skarels 	  ppiioctl,	enodev,		nullop,		NULL,
23947581Skarels 	  enodev,	enodev,		NULL },
24047581Skarels 	{ dcaopen,	dcaclose,	dcaread,	dcawrite,	/*12*/
24147581Skarels 	  dcaioctl,	dcastop,	nullop,		dca_tty,
24247581Skarels 	  ttselect,	enodev,		NULL },
24347581Skarels 	{ iteopen,	iteclose,	iteread,	itewrite,	/*13*/
24447581Skarels 	  iteioctl,	enodev,		nullop,		ite_tty,
24547581Skarels 	  ttselect,	enodev,		NULL },
24647581Skarels 	{ hilopen,	hilclose,	hilread,	nullop,		/*14*/
24747581Skarels 	  hilioctl,	enodev,		nullop,		NULL,
24847581Skarels 	  hilselect,	hilmap,		NULL },
24947581Skarels 	{ dcmopen,	dcmclose,	dcmread,	dcmwrite,	/*15*/
25047581Skarels 	  dcmioctl,	dcmstop,	nullop,		dcm_tty,
25147581Skarels 	  ttselect,	enodev,		NULL },
25247581Skarels 	{ enodev,	enodev,		enodev,		enodev,		/*16*/
25347581Skarels 	  enodev,	enodev,		nullop,		NULL,
25447581Skarels 	  seltrue,	enodev,		NULL },
25547581Skarels 	{ cdopen,	nullop,		cdread,		cdwrite,	/*17*/
25647581Skarels 	  cdioctl,	enodev,		nullop,		NULL,
25747581Skarels 	  seltrue,	enodev,		cdstrategy },
25847581Skarels 	{ clockopen,	clockclose,	nullop,		nullop,		/*18*/
25947581Skarels 	  clockioctl,	enodev,		nullop,		NULL,
26047581Skarels 	  nullop,	clockmap,	NULL },
26147581Skarels #ifdef notdef
26247581Skarels 	{ fdopen,	nullop,		fdread,		fdwrite,	/*19*/
26347581Skarels 	  fdioctl,	enodev,		nullop,		NULL,
26447581Skarels 	  seltrue,	enodev,		NULL },
26547581Skarels #else
26647581Skarels 	{ enodev,	enodev,		enodev,		enodev,		/*19*/
26747581Skarels 	  enodev,	enodev,		nullop,		NULL,
26847581Skarels 	  seltrue,	enodev,		NULL },
26947581Skarels #endif
27047581Skarels 	{ enodev,	enodev,		enodev,		enodev,		/*20*/
27147581Skarels 	  enodev,	enodev,		nullop,		NULL,
27247581Skarels 	  seltrue,	enodev,		NULL },
27347581Skarels 	{ fdopen,	enodev,		enodev,		enodev,		/*21*/
27447581Skarels 	  enodev,	enodev,		enodev,		NULL,
27547581Skarels 	  enodev,	enodev,		NULL },
276*47583Smccanne 	{ bpfopen,	bpfclose,	bpfread,	bpfwrite,	/*22*/
277*47583Smccanne 	  bpfioctl,	enodev,		enodev,		NULL,
278*47583Smccanne 	  bpfselect,	enodev,		NULL },
27941475Smckusick };
28041475Smckusick int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
28141475Smckusick 
28241475Smckusick int	mem_no = 2; 	/* major device number of memory special file */
28341475Smckusick 
28441475Smckusick /*
28541475Smckusick  * Swapdev is a fake device implemented
28641475Smckusick  * in sw.c used only internally to get to swstrategy.
28741475Smckusick  * It cannot be provided to the users, because the
28841475Smckusick  * swstrategy routine munches the b_dev and b_blkno entries
28941475Smckusick  * before calling the appropriate driver.  This would horribly
29041475Smckusick  * confuse, e.g. the hashing routines. Instead, /dev/drum is
29141475Smckusick  * provided as a character (raw) device.
29241475Smckusick  */
29341475Smckusick dev_t	swapdev = makedev(3, 0);
294