xref: /csrg-svn/sys/hp300/hp300/conf.c (revision 45788)
141475Smckusick /*
241475Smckusick  * Copyright (c) 1982, 1990 Regents of the University of California.
341475Smckusick  * All rights reserved.
441475Smckusick  *
541475Smckusick  * %sccs.include.redist.c%
641475Smckusick  *
7*45788Sbostic  *	@(#)conf.c	7.3 (Berkeley) 12/16/90
841475Smckusick  */
941475Smckusick 
10*45788Sbostic #include "sys/param.h"
11*45788Sbostic #include "sys/systm.h"
12*45788Sbostic #include "sys/buf.h"
13*45788Sbostic #include "sys/ioctl.h"
14*45788Sbostic #include "sys/tty.h"
15*45788Sbostic #include "sys/conf.h"
1641475Smckusick 
1741475Smckusick int	nulldev(), nodev(), rawread(), rawwrite(), swstrategy();
1841475Smckusick 
1941475Smckusick #include "ct.h"
2041475Smckusick #if NCT > 0
2141475Smckusick int	ctopen(),ctclose(),ctstrategy(),ctread(),ctwrite(),ctdump(),ctioctl();
2241475Smckusick #else
2341475Smckusick #define	ctopen		nodev
2441475Smckusick #define	ctclose		nodev
2541475Smckusick #define	ctstrategy	nodev
2641475Smckusick #define	ctread		nodev
2741475Smckusick #define	ctwrite		nodev
2841475Smckusick #define	ctdump		nodev
2941475Smckusick #define	ctioctl		nodev
3041475Smckusick #endif
3141475Smckusick 
3241475Smckusick #include "rd.h"
3341475Smckusick #if NRD > 0
3441475Smckusick int	rdopen(),rdstrategy(),rdread(),rdwrite(),rddump(),rdioctl(),rdsize();
3541475Smckusick #else
3641475Smckusick #define	rdopen		nodev
3741475Smckusick #define	rdstrategy	nodev
3841475Smckusick #define	rdread		nodev
3941475Smckusick #define	rdwrite		nodev
4041475Smckusick #define	rddump		nodev
4141475Smckusick #define	rdioctl		nodev
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
4941475Smckusick #define	sdopen		nodev
5041475Smckusick #define	sdstrategy	nodev
5141475Smckusick #define	sdread		nodev
5241475Smckusick #define	sdwrite		nodev
5341475Smckusick #define	sddump		nodev
5441475Smckusick #define	sdioctl		nodev
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
6241475Smckusick #define	cdopen		nodev
6341475Smckusick #define	cdstrategy	nodev
6441475Smckusick #define	cdread		nodev
6541475Smckusick #define	cdwrite		nodev
6641475Smckusick #define	cddump		nodev
6741475Smckusick #define	cdioctl		nodev
6841475Smckusick #define	cdsize		0
6941475Smckusick #endif
7041475Smckusick 
7141475Smckusick #include "fd.h"
7241475Smckusick #if NFD > 0
7341475Smckusick int	fdopen(),fdstrategy(),fdread(),fdwrite(),fddump(),fdioctl(),fdsize();
7441475Smckusick #else
7541475Smckusick #define	fdopen		nodev
7641475Smckusick #define	fdstrategy	nodev
7741475Smckusick #define	fdread		nodev
7841475Smckusick #define	fdwrite		nodev
7941475Smckusick #define	fddump		nodev
8041475Smckusick #define	fdioctl		nodev
8141475Smckusick #define	fdsize		0
8241475Smckusick #endif
8341475Smckusick 
8441475Smckusick struct bdevsw	bdevsw[] =
8541475Smckusick {
8641475Smckusick 	{ ctopen,	ctclose,	ctstrategy,	ctioctl,	/*0*/
8741475Smckusick 	  ctdump,	0,		B_TAPE },
8841475Smckusick 	{ nodev,	nodev,		nodev,		nodev,		/*1*/
8941475Smckusick 	  nodev,	0,		0 },
9041475Smckusick 	{ rdopen,	nulldev,	rdstrategy,	rdioctl,	/*2*/
9141475Smckusick 	  rddump,	rdsize,		0 },
9241475Smckusick 	{ nodev,	nodev,		swstrategy,	nodev,		/*3*/
9341475Smckusick 	  nodev,	0,		0 },
9441475Smckusick 	{ sdopen,	nulldev,	sdstrategy,	sdioctl,	/*4*/
9541475Smckusick 	  sddump,	sdsize,		0 },
9641475Smckusick 	{ cdopen,	nulldev,	cdstrategy,	cdioctl,	/*5*/
9741475Smckusick 	  cddump,	cdsize,		0 },
9841475Smckusick 	{ fdopen,	nulldev,	fdstrategy,	fdioctl,	/*6*/
9941475Smckusick 	  fddump,	fdsize,		0 },
10041475Smckusick };
10141475Smckusick int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
10241475Smckusick 
10341475Smckusick int	cnopen(),cnclose(),cnread(),cnwrite(),cnioctl(),cnselect();
10441475Smckusick 
10541475Smckusick int	syopen(),syread(),sywrite(),syioctl(),syselect();
10641475Smckusick 
10741475Smckusick int 	mmrw();
10841475Smckusick #define	mmselect	seltrue
10941475Smckusick 
11041475Smckusick #include "pty.h"
11141475Smckusick #if NPTY > 0
11241475Smckusick int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();
11341475Smckusick int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();
11441475Smckusick int	ptyioctl();
11541475Smckusick struct	tty pt_tty[];
11641475Smckusick #else
11741475Smckusick #define ptsopen		nodev
11841475Smckusick #define ptsclose	nodev
11941475Smckusick #define ptsread		nodev
12041475Smckusick #define ptswrite	nodev
12141475Smckusick #define ptcopen		nodev
12241475Smckusick #define ptcclose	nodev
12341475Smckusick #define ptcread		nodev
12441475Smckusick #define ptcwrite	nodev
12541475Smckusick #define ptyioctl	nodev
12641475Smckusick #define	pt_tty		0
12741475Smckusick #define	ptcselect	nodev
12841475Smckusick #define	ptsstop		nulldev
12941475Smckusick #endif
13041475Smckusick 
13141475Smckusick #include "ppi.h"
13241475Smckusick #if NPPI > 0
13345751Smckusick int	ppiopen(),ppiclose(),ppiread(),ppiwrite(),ppiioctl();
13441475Smckusick #else
13541475Smckusick #define ppiopen		nodev
13641475Smckusick #define ppiclose	nodev
13741475Smckusick #define ppiread		nodev
13841475Smckusick #define ppiwrite	nodev
13945751Smckusick #define ppiioctl	nodev
14041475Smckusick #endif
14141475Smckusick 
14241475Smckusick #include "ite.h"
14341475Smckusick #if NITE > 0
14441475Smckusick int	iteopen(),iteclose(),iteread(),itewrite(),iteioctl();
14541475Smckusick struct	tty ite_tty[];
14641475Smckusick #else
14741475Smckusick #define iteopen		nodev
14841475Smckusick #define iteclose	nodev
14941475Smckusick #define iteread		nodev
15041475Smckusick #define itewrite	nodev
15141475Smckusick #define itestop		nulldev
15241475Smckusick #define iteioctl	nodev
15341475Smckusick #define ite_tty		0
15441475Smckusick #endif
15541475Smckusick 
15641475Smckusick #include "dca.h"
15741475Smckusick #if NDCA > 0
15841475Smckusick int	dcaopen(),dcaclose(),dcaread(),dcawrite(),dcastop(),dcaioctl();
15941475Smckusick struct	tty dca_tty[];
16041475Smckusick #else
16141475Smckusick #define dcaopen		nodev
16241475Smckusick #define dcaclose	nodev
16341475Smckusick #define dcaread		nodev
16441475Smckusick #define dcawrite	nodev
16541475Smckusick #define dcastop		nulldev
16641475Smckusick #define dcaioctl	nodev
16741475Smckusick #define dca_tty		0
16841475Smckusick #endif
16941475Smckusick 
17041475Smckusick #include "dcm.h"
17141475Smckusick #if NDCM > 0
17241475Smckusick int	dcmopen(),dcmclose(),dcmread(),dcmwrite(),dcmstop(),dcmioctl();
17341475Smckusick struct	tty dcm_tty[];
17441475Smckusick #else
17541475Smckusick #define dcmopen		nodev
17641475Smckusick #define dcmclose	nodev
17741475Smckusick #define dcmread		nodev
17841475Smckusick #define dcmwrite	nodev
17941475Smckusick #define dcmstop		nulldev
18041475Smckusick #define dcmioctl	nodev
18141475Smckusick #define dcm_tty		0
18241475Smckusick #endif
18341475Smckusick 
18441475Smckusick #include "clock.h"
18541475Smckusick #if NCLOCK > 0
18641475Smckusick int	clockopen(),clockclose(),clockioctl(),clockmap();
18741475Smckusick #else
18841475Smckusick #define clockopen	nodev
18941475Smckusick #define clockclose	nodev
19041475Smckusick #define clockioctl	nodev
19141475Smckusick #define clockmap	nodev
19241475Smckusick #endif
19341475Smckusick 
19441475Smckusick int	logopen(),logclose(),logread(),logioctl(),logselect();
19541475Smckusick 
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 {
20441475Smckusick 	cnopen,		cnclose,	cnread,		cnwrite,	/*0*/
20541475Smckusick 	cnioctl,	nulldev,	nulldev,	NULL,
20641475Smckusick 	cnselect,	nodev,		NULL,
20741475Smckusick 	syopen,		nulldev,	syread,		sywrite,	/*1*/
20841475Smckusick 	syioctl,	nulldev,	nulldev,	NULL,
20941475Smckusick 	syselect,	nodev,		NULL,
21041475Smckusick 	nulldev,	nulldev,	mmrw,		mmrw,		/*2*/
21141475Smckusick 	nodev,		nulldev,	nulldev,	NULL,
21241475Smckusick 	mmselect,	nodev,		NULL,
21341475Smckusick 	nulldev,	nulldev,	rawread,	rawwrite,	/*3*/
21441475Smckusick 	nodev,		nodev,		nulldev,	NULL,
21541475Smckusick 	nodev,		nodev,		swstrategy,
21641475Smckusick 	ptsopen,	ptsclose,	ptsread,	ptswrite,	/*4*/
21741475Smckusick 	ptyioctl,	ptsstop,	nulldev,	pt_tty,
21841475Smckusick 	ttselect,	nodev,		NULL,
21941475Smckusick 	ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*5*/
22041475Smckusick 	ptyioctl,	nulldev,	nulldev,	pt_tty,
22141475Smckusick 	ptcselect,	nodev,		NULL,
22241475Smckusick 	logopen,	logclose,	logread,	nodev,		/*6*/
22341475Smckusick 	logioctl,	nodev,		nulldev,	NULL,
22441475Smckusick 	logselect,	nodev,		NULL,
22541475Smckusick 	ctopen,		ctclose,	ctread,		ctwrite,	/*7*/
22641475Smckusick 	ctioctl,	nodev,		nulldev,	NULL,
22741475Smckusick 	seltrue,	nodev,		ctstrategy,
22841475Smckusick 	sdopen,		nulldev,	sdread,		sdwrite,	/*8*/
22941475Smckusick 	sdioctl,	nodev,		nulldev,	NULL,
23041475Smckusick 	seltrue,	nodev,		sdstrategy,
23141475Smckusick 	rdopen,		nulldev,	rdread,		rdwrite,	/*9*/
23241475Smckusick 	rdioctl,	nodev,		nulldev,	NULL,
23341475Smckusick 	seltrue,	nodev,		rdstrategy,
23441475Smckusick 	grfopen,	grfclose,	nulldev,	nulldev,	/*10*/
23541475Smckusick 	grfioctl,	nodev,		nulldev,	NULL,
23641475Smckusick 	grfselect,	grfmap,		NULL,
23741475Smckusick 	ppiopen,	ppiclose,	ppiread,	ppiwrite,	/*11*/
23845751Smckusick 	ppiioctl,	nodev,		nulldev,	NULL,
23941475Smckusick 	nodev,		nodev,		NULL,
24041475Smckusick 	dcaopen,	dcaclose,	dcaread,	dcawrite,	/*12*/
24141475Smckusick 	dcaioctl,	dcastop,	nulldev,	dca_tty,
24241475Smckusick 	ttselect,	nodev,		NULL,
24341475Smckusick 	iteopen,	iteclose,	iteread,	itewrite,	/*13*/
24441475Smckusick 	iteioctl,	nodev,		nulldev,	ite_tty,
24541475Smckusick 	ttselect,	nodev,		NULL,
24641475Smckusick 	hilopen,	hilclose,	hilread,	nulldev,	/*14*/
24741475Smckusick 	hilioctl,	nodev,		nulldev,	NULL,
24841475Smckusick 	hilselect,	hilmap,		NULL,
24941475Smckusick 	dcmopen,	dcmclose,	dcmread,	dcmwrite,	/*15*/
25041475Smckusick 	dcmioctl,	dcmstop,	nulldev,	dcm_tty,
25141475Smckusick 	ttselect,	nodev,		NULL,
25241475Smckusick 	nodev,		nodev,		nodev,		nodev,		/*16*/
25341475Smckusick 	nodev,		nodev,		nulldev,	NULL,
25441475Smckusick 	seltrue,	nodev,		NULL,
25541475Smckusick 	cdopen,		nulldev,	cdread,		cdwrite,	/*17*/
25641475Smckusick 	cdioctl,	nodev,		nulldev,	NULL,
25741475Smckusick 	seltrue,	nodev,		cdstrategy,
25841475Smckusick 	clockopen,	clockclose,	nulldev,	nulldev,	/*18*/
25941475Smckusick 	clockioctl,	nodev,		nulldev,	NULL,
26041475Smckusick 	nulldev,	clockmap,	NULL,
26141475Smckusick 	fdopen,		nulldev,	fdread,		fdwrite,	/*19*/
26241475Smckusick 	fdioctl,	nodev,		nulldev,	NULL,
26341475Smckusick 	seltrue,	nodev,		NULL,
26441475Smckusick };
26541475Smckusick int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
26641475Smckusick 
26741475Smckusick int	mem_no = 2; 	/* major device number of memory special file */
26841475Smckusick 
26941475Smckusick /*
27041475Smckusick  * Swapdev is a fake device implemented
27141475Smckusick  * in sw.c used only internally to get to swstrategy.
27241475Smckusick  * It cannot be provided to the users, because the
27341475Smckusick  * swstrategy routine munches the b_dev and b_blkno entries
27441475Smckusick  * before calling the appropriate driver.  This would horribly
27541475Smckusick  * confuse, e.g. the hashing routines. Instead, /dev/drum is
27641475Smckusick  * provided as a character (raw) device.
27741475Smckusick  */
27841475Smckusick dev_t	swapdev = makedev(3, 0);
279