xref: /csrg-svn/sys/hp300/hp300/conf.c (revision 49328)
141475Smckusick /*
241475Smckusick  * Copyright (c) 1982, 1990 Regents of the University of California.
341475Smckusick  * All rights reserved.
441475Smckusick  *
541475Smckusick  * %sccs.include.redist.c%
641475Smckusick  *
7*49328Shibler  *	@(#)conf.c	7.6 (Berkeley) 05/07/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 
71*49328Shibler #include "vn.h"
72*49328Shibler #if NVN > 0
73*49328Shibler int	vnopen(),vnstrategy(),vnread(),vnwrite(),vndump(),vnioctl(),vnsize();
74*49328Shibler #else
75*49328Shibler #define	vnopen		enxio
76*49328Shibler #define	vnstrategy	enxio
77*49328Shibler #define	vnread		enxio
78*49328Shibler #define	vnwrite		enxio
79*49328Shibler #define	vndump		enxio
80*49328Shibler #define	vnioctl		enxio
81*49328Shibler #define	vnsize		0
82*49328Shibler #endif
83*49328Shibler 
8441475Smckusick struct bdevsw	bdevsw[] =
8541475Smckusick {
8641475Smckusick 	{ ctopen,	ctclose,	ctstrategy,	ctioctl,	/*0*/
8741475Smckusick 	  ctdump,	0,		B_TAPE },
8847581Skarels 	{ enxio,	enxio,		enxio,		enxio,		/*1*/
8947581Skarels 	  enxio,	0,		0 },
9047581Skarels 	{ rdopen,	nullop,		rdstrategy,	rdioctl,	/*2*/
9141475Smckusick 	  rddump,	rdsize,		0 },
9247581Skarels 	{ enodev,	enodev,		swstrategy,	enodev,		/*3*/
9347581Skarels 	  enodev,	0,		0 },
9447581Skarels 	{ sdopen,	nullop,		sdstrategy,	sdioctl,	/*4*/
9541475Smckusick 	  sddump,	sdsize,		0 },
9647581Skarels 	{ cdopen,	nullop,		cdstrategy,	cdioctl,	/*5*/
9741475Smckusick 	  cddump,	cdsize,		0 },
98*49328Shibler 	{ vnopen,	nullop,		vnstrategy,	vnioctl,	/*6*/
99*49328Shibler 	  vndump,	vnsize,		0 },
10041475Smckusick };
10141475Smckusick int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
10241475Smckusick 
10347581Skarels int	cnopen(), cnclose(), cnread(),  cnwrite(), cnioctl(), cnselect();
10441475Smckusick 
10547581Skarels int	cttyopen(), cttyread(), cttywrite(), cttyioctl(), cttyselect();
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
11747581Skarels #define ptsopen		enxio
11847581Skarels #define ptsclose	enxio
11947581Skarels #define ptsread		enxio
12047581Skarels #define ptswrite	enxio
12147581Skarels #define ptcopen		enxio
12247581Skarels #define ptcclose	enxio
12347581Skarels #define ptcread		enxio
12447581Skarels #define ptcwrite	enxio
12547581Skarels #define ptyioctl	enxio
12641475Smckusick #define	pt_tty		0
12747581Skarels #define	ptcselect	enxio
12847581Skarels #define	ptsstop		nullop
12941475Smckusick #endif
13041475Smckusick 
13141475Smckusick #include "ppi.h"
13241475Smckusick #if NPPI > 0
13345751Smckusick int	ppiopen(),ppiclose(),ppiread(),ppiwrite(),ppiioctl();
13441475Smckusick #else
13547581Skarels #define ppiopen		enxio
13647581Skarels #define ppiclose	enxio
13747581Skarels #define ppiread		enxio
13847581Skarels #define ppiwrite	enxio
13947581Skarels #define ppiioctl	enxio
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
14747581Skarels #define iteopen		enxio
14847581Skarels #define iteclose	enxio
14947581Skarels #define iteread		enxio
15047581Skarels #define itewrite	enxio
15147581Skarels #define itestop		nullop
15247581Skarels #define iteioctl	enxio
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
16147581Skarels #define dcaopen		enxio
16247581Skarels #define dcaclose	enxio
16347581Skarels #define dcaread		enxio
16447581Skarels #define dcawrite	enxio
16547581Skarels #define dcastop		nullop
16647581Skarels #define dcaioctl	enxio
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
17547581Skarels #define dcmopen		enxio
17647581Skarels #define dcmclose	enxio
17747581Skarels #define dcmread		enxio
17847581Skarels #define dcmwrite	enxio
17947581Skarels #define dcmstop		nullop
18047581Skarels #define dcmioctl	enxio
18141475Smckusick #define dcm_tty		0
18241475Smckusick #endif
18341475Smckusick 
18441475Smckusick #include "clock.h"
18541475Smckusick #if NCLOCK > 0
18641475Smckusick int	clockopen(),clockclose(),clockioctl(),clockmap();
18741475Smckusick #else
18847581Skarels #define clockopen	enxio
18947581Skarels #define clockclose	enxio
19047581Skarels #define clockioctl	enxio
19147581Skarels #define clockmap	enxio
19241475Smckusick #endif
19341475Smckusick 
19447583Smccanne #include "bpfilter.h"
19547583Smccanne #if NBPFILTER > 0
19647583Smccanne int	bpfopen(),bpfclose(),bpfread(),bpfwrite(),bpfioctl(),bpfselect();
19747583Smccanne #else
19847583Smccanne #define bpfopen		enxio
19947583Smccanne #define bpfclose	enxio
20047583Smccanne #define bpfread		enxio
20147583Smccanne #define bpfwrite	enxio
20247583Smccanne #define bpfioctl	enxio
20347583Smccanne #define bpfselect	enxio
20447583Smccanne #endif
20547583Smccanne 
20641475Smckusick int	logopen(),logclose(),logread(),logioctl(),logselect();
20741475Smckusick 
20847581Skarels int	fdopen();
20947581Skarels 
21041475Smckusick int	ttselect(), seltrue();
21141475Smckusick 
21241475Smckusick int	grfopen(),grfclose(),grfioctl(),grfselect(),grfmap();
21341475Smckusick 
21441475Smckusick int	hilopen(),hilclose(),hilioctl(),hilmap(),hilselect(),hilread();
21541475Smckusick 
21641475Smckusick struct cdevsw	cdevsw[] =
21741475Smckusick {
21847581Skarels 	{ cnopen,	cnclose,	cnread,		cnwrite,	/*0*/
21947581Skarels 	  cnioctl,	nullop,		nullop,		NULL,
22047581Skarels 	  cnselect,	enodev,		NULL },
22147581Skarels 	{ cttyopen,	nullop,		cttyread,	cttywrite,	/*1*/
22247581Skarels 	  cttyioctl,	nullop,		nullop,		NULL,
22347581Skarels 	  cttyselect,	enodev,		NULL },
22447581Skarels 	{ nullop,	nullop,		mmrw,		mmrw,		/*2*/
22547581Skarels 	  enodev,	nullop,		nullop,		NULL,
22647581Skarels 	  mmselect,	enodev,		NULL },
22747581Skarels 	{ nullop,	nullop,		rawread,	rawwrite,	/*3*/
22847581Skarels 	  enodev,	enodev,		nullop,		NULL,
22947581Skarels 	  enodev,	enodev,		swstrategy },
23047581Skarels 	{ ptsopen,	ptsclose,	ptsread,	ptswrite,	/*4*/
23147581Skarels 	  ptyioctl,	ptsstop,	nullop,		pt_tty,
23247581Skarels 	  ttselect,	enodev,		NULL },
23347581Skarels 	{ ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*5*/
23447581Skarels 	  ptyioctl,	nullop,		nullop,		pt_tty,
23547581Skarels 	  ptcselect,	enodev,		NULL },
23647581Skarels 	{ logopen,	logclose,	logread,	enodev,		/*6*/
23747581Skarels 	  logioctl,	enodev,		nullop,		NULL,
23847581Skarels 	  logselect,	enodev,		NULL },
23947581Skarels 	{ ctopen,	ctclose,	ctread,		ctwrite,	/*7*/
24047581Skarels 	  ctioctl,	enodev,		nullop,		NULL,
24147581Skarels 	  seltrue,	enodev,		ctstrategy },
24247581Skarels 	{ sdopen,	nullop,		sdread,		sdwrite,	/*8*/
24347581Skarels 	  sdioctl,	enodev,		nullop,		NULL,
24447581Skarels 	  seltrue,	enodev,		sdstrategy },
24547581Skarels 	{ rdopen,	nullop,		rdread,		rdwrite,	/*9*/
24647581Skarels 	  rdioctl,	enodev,		nullop,		NULL,
24747581Skarels 	  seltrue,	enodev,		rdstrategy },
24847581Skarels 	{ grfopen,	grfclose,	nullop,		nullop,		/*10*/
24947581Skarels 	  grfioctl,	enodev,		nullop,		NULL,
25047581Skarels 	  grfselect,	grfmap,		NULL },
25147581Skarels 	{ ppiopen,	ppiclose,	ppiread,	ppiwrite,	/*11*/
25247581Skarels 	  ppiioctl,	enodev,		nullop,		NULL,
25347581Skarels 	  enodev,	enodev,		NULL },
25447581Skarels 	{ dcaopen,	dcaclose,	dcaread,	dcawrite,	/*12*/
25547581Skarels 	  dcaioctl,	dcastop,	nullop,		dca_tty,
25647581Skarels 	  ttselect,	enodev,		NULL },
25747581Skarels 	{ iteopen,	iteclose,	iteread,	itewrite,	/*13*/
25847581Skarels 	  iteioctl,	enodev,		nullop,		ite_tty,
25947581Skarels 	  ttselect,	enodev,		NULL },
26047581Skarels 	{ hilopen,	hilclose,	hilread,	nullop,		/*14*/
26147581Skarels 	  hilioctl,	enodev,		nullop,		NULL,
26247581Skarels 	  hilselect,	hilmap,		NULL },
26347581Skarels 	{ dcmopen,	dcmclose,	dcmread,	dcmwrite,	/*15*/
26447581Skarels 	  dcmioctl,	dcmstop,	nullop,		dcm_tty,
26547581Skarels 	  ttselect,	enodev,		NULL },
26647581Skarels 	{ enodev,	enodev,		enodev,		enodev,		/*16*/
26747581Skarels 	  enodev,	enodev,		nullop,		NULL,
26847581Skarels 	  seltrue,	enodev,		NULL },
26947581Skarels 	{ cdopen,	nullop,		cdread,		cdwrite,	/*17*/
27047581Skarels 	  cdioctl,	enodev,		nullop,		NULL,
27147581Skarels 	  seltrue,	enodev,		cdstrategy },
27247581Skarels 	{ clockopen,	clockclose,	nullop,		nullop,		/*18*/
27347581Skarels 	  clockioctl,	enodev,		nullop,		NULL,
27447581Skarels 	  nullop,	clockmap,	NULL },
275*49328Shibler 	{ vnopen,	nullop,		vnread,		vnwrite,	/*19*/
276*49328Shibler 	  vnioctl,	enodev,		nullop,		NULL,
27747581Skarels 	  seltrue,	enodev,		NULL },
27847581Skarels 	{ enodev,	enodev,		enodev,		enodev,		/*20*/
27947581Skarels 	  enodev,	enodev,		nullop,		NULL,
28047581Skarels 	  seltrue,	enodev,		NULL },
28147581Skarels 	{ fdopen,	enodev,		enodev,		enodev,		/*21*/
28247581Skarels 	  enodev,	enodev,		enodev,		NULL,
28347581Skarels 	  enodev,	enodev,		NULL },
28447583Smccanne 	{ bpfopen,	bpfclose,	bpfread,	bpfwrite,	/*22*/
28547583Smccanne 	  bpfioctl,	enodev,		enodev,		NULL,
28647583Smccanne 	  bpfselect,	enodev,		NULL },
28741475Smckusick };
28841475Smckusick int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
28941475Smckusick 
29041475Smckusick int	mem_no = 2; 	/* major device number of memory special file */
29141475Smckusick 
29241475Smckusick /*
29341475Smckusick  * Swapdev is a fake device implemented
29441475Smckusick  * in sw.c used only internally to get to swstrategy.
29541475Smckusick  * It cannot be provided to the users, because the
29641475Smckusick  * swstrategy routine munches the b_dev and b_blkno entries
29741475Smckusick  * before calling the appropriate driver.  This would horribly
29841475Smckusick  * confuse, e.g. the hashing routines. Instead, /dev/drum is
29941475Smckusick  * provided as a character (raw) device.
30041475Smckusick  */
30141475Smckusick dev_t	swapdev = makedev(3, 0);
302