xref: /csrg-svn/sys/hp300/hp300/conf.c (revision 47581)
141475Smckusick /*
241475Smckusick  * Copyright (c) 1982, 1990 Regents of the University of California.
341475Smckusick  * All rights reserved.
441475Smckusick  *
541475Smckusick  * %sccs.include.redist.c%
641475Smckusick  *
7*47581Skarels  *	@(#)conf.c	7.4 (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 
17*47581Skarels 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
23*47581Skarels #define	ctopen		enxio
24*47581Skarels #define	ctclose		enxio
25*47581Skarels #define	ctstrategy	enxio
26*47581Skarels #define	ctread		enxio
27*47581Skarels #define	ctwrite		enxio
28*47581Skarels #define	ctdump		enxio
29*47581Skarels #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
36*47581Skarels #define	rdopen		enxio
37*47581Skarels #define	rdstrategy	enxio
38*47581Skarels #define	rdread		enxio
39*47581Skarels #define	rdwrite		enxio
40*47581Skarels #define	rddump		enxio
41*47581Skarels #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
49*47581Skarels #define	sdopen		enxio
50*47581Skarels #define	sdstrategy	enxio
51*47581Skarels #define	sdread		enxio
52*47581Skarels #define	sdwrite		enxio
53*47581Skarels #define	sddump		enxio
54*47581Skarels #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
62*47581Skarels #define	cdopen		enxio
63*47581Skarels #define	cdstrategy	enxio
64*47581Skarels #define	cdread		enxio
65*47581Skarels #define	cdwrite		enxio
66*47581Skarels #define	cddump		enxio
67*47581Skarels #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 },
75*47581Skarels 	{ enxio,	enxio,		enxio,		enxio,		/*1*/
76*47581Skarels 	  enxio,	0,		0 },
77*47581Skarels 	{ rdopen,	nullop,		rdstrategy,	rdioctl,	/*2*/
7841475Smckusick 	  rddump,	rdsize,		0 },
79*47581Skarels 	{ enodev,	enodev,		swstrategy,	enodev,		/*3*/
80*47581Skarels 	  enodev,	0,		0 },
81*47581Skarels 	{ sdopen,	nullop,		sdstrategy,	sdioctl,	/*4*/
8241475Smckusick 	  sddump,	sdsize,		0 },
83*47581Skarels 	{ cdopen,	nullop,		cdstrategy,	cdioctl,	/*5*/
8441475Smckusick 	  cddump,	cdsize,		0 },
85*47581Skarels 	/* 6 was "fd" vnode device */
8641475Smckusick };
8741475Smckusick int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
8841475Smckusick 
89*47581Skarels int	cnopen(), cnclose(), cnread(),  cnwrite(), cnioctl(), cnselect();
9041475Smckusick 
91*47581Skarels 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
103*47581Skarels #define ptsopen		enxio
104*47581Skarels #define ptsclose	enxio
105*47581Skarels #define ptsread		enxio
106*47581Skarels #define ptswrite	enxio
107*47581Skarels #define ptcopen		enxio
108*47581Skarels #define ptcclose	enxio
109*47581Skarels #define ptcread		enxio
110*47581Skarels #define ptcwrite	enxio
111*47581Skarels #define ptyioctl	enxio
11241475Smckusick #define	pt_tty		0
113*47581Skarels #define	ptcselect	enxio
114*47581Skarels #define	ptsstop		nullop
11541475Smckusick #endif
11641475Smckusick 
11741475Smckusick #include "ppi.h"
11841475Smckusick #if NPPI > 0
11945751Smckusick int	ppiopen(),ppiclose(),ppiread(),ppiwrite(),ppiioctl();
12041475Smckusick #else
121*47581Skarels #define ppiopen		enxio
122*47581Skarels #define ppiclose	enxio
123*47581Skarels #define ppiread		enxio
124*47581Skarels #define ppiwrite	enxio
125*47581Skarels #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
133*47581Skarels #define iteopen		enxio
134*47581Skarels #define iteclose	enxio
135*47581Skarels #define iteread		enxio
136*47581Skarels #define itewrite	enxio
137*47581Skarels #define itestop		nullop
138*47581Skarels #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
147*47581Skarels #define dcaopen		enxio
148*47581Skarels #define dcaclose	enxio
149*47581Skarels #define dcaread		enxio
150*47581Skarels #define dcawrite	enxio
151*47581Skarels #define dcastop		nullop
152*47581Skarels #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
161*47581Skarels #define dcmopen		enxio
162*47581Skarels #define dcmclose	enxio
163*47581Skarels #define dcmread		enxio
164*47581Skarels #define dcmwrite	enxio
165*47581Skarels #define dcmstop		nullop
166*47581Skarels #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
174*47581Skarels #define clockopen	enxio
175*47581Skarels #define clockclose	enxio
176*47581Skarels #define clockioctl	enxio
177*47581Skarels #define clockmap	enxio
17841475Smckusick #endif
17941475Smckusick 
18041475Smckusick int	logopen(),logclose(),logread(),logioctl(),logselect();
18141475Smckusick 
182*47581Skarels int	fdopen();
183*47581Skarels 
18441475Smckusick int	ttselect(), seltrue();
18541475Smckusick 
18641475Smckusick int	grfopen(),grfclose(),grfioctl(),grfselect(),grfmap();
18741475Smckusick 
18841475Smckusick int	hilopen(),hilclose(),hilioctl(),hilmap(),hilselect(),hilread();
18941475Smckusick 
19041475Smckusick struct cdevsw	cdevsw[] =
19141475Smckusick {
192*47581Skarels 	{ cnopen,	cnclose,	cnread,		cnwrite,	/*0*/
193*47581Skarels 	  cnioctl,	nullop,		nullop,		NULL,
194*47581Skarels 	  cnselect,	enodev,		NULL },
195*47581Skarels 	{ cttyopen,	nullop,		cttyread,	cttywrite,	/*1*/
196*47581Skarels 	  cttyioctl,	nullop,		nullop,		NULL,
197*47581Skarels 	  cttyselect,	enodev,		NULL },
198*47581Skarels 	{ nullop,	nullop,		mmrw,		mmrw,		/*2*/
199*47581Skarels 	  enodev,	nullop,		nullop,		NULL,
200*47581Skarels 	  mmselect,	enodev,		NULL },
201*47581Skarels 	{ nullop,	nullop,		rawread,	rawwrite,	/*3*/
202*47581Skarels 	  enodev,	enodev,		nullop,		NULL,
203*47581Skarels 	  enodev,	enodev,		swstrategy },
204*47581Skarels 	{ ptsopen,	ptsclose,	ptsread,	ptswrite,	/*4*/
205*47581Skarels 	  ptyioctl,	ptsstop,	nullop,		pt_tty,
206*47581Skarels 	  ttselect,	enodev,		NULL },
207*47581Skarels 	{ ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*5*/
208*47581Skarels 	  ptyioctl,	nullop,		nullop,		pt_tty,
209*47581Skarels 	  ptcselect,	enodev,		NULL },
210*47581Skarels 	{ logopen,	logclose,	logread,	enodev,		/*6*/
211*47581Skarels 	  logioctl,	enodev,		nullop,		NULL,
212*47581Skarels 	  logselect,	enodev,		NULL },
213*47581Skarels 	{ ctopen,	ctclose,	ctread,		ctwrite,	/*7*/
214*47581Skarels 	  ctioctl,	enodev,		nullop,		NULL,
215*47581Skarels 	  seltrue,	enodev,		ctstrategy },
216*47581Skarels 	{ sdopen,	nullop,		sdread,		sdwrite,	/*8*/
217*47581Skarels 	  sdioctl,	enodev,		nullop,		NULL,
218*47581Skarels 	  seltrue,	enodev,		sdstrategy },
219*47581Skarels 	{ rdopen,	nullop,		rdread,		rdwrite,	/*9*/
220*47581Skarels 	  rdioctl,	enodev,		nullop,		NULL,
221*47581Skarels 	  seltrue,	enodev,		rdstrategy },
222*47581Skarels 	{ grfopen,	grfclose,	nullop,		nullop,		/*10*/
223*47581Skarels 	  grfioctl,	enodev,		nullop,		NULL,
224*47581Skarels 	  grfselect,	grfmap,		NULL },
225*47581Skarels 	{ ppiopen,	ppiclose,	ppiread,	ppiwrite,	/*11*/
226*47581Skarels 	  ppiioctl,	enodev,		nullop,		NULL,
227*47581Skarels 	  enodev,	enodev,		NULL },
228*47581Skarels 	{ dcaopen,	dcaclose,	dcaread,	dcawrite,	/*12*/
229*47581Skarels 	  dcaioctl,	dcastop,	nullop,		dca_tty,
230*47581Skarels 	  ttselect,	enodev,		NULL },
231*47581Skarels 	{ iteopen,	iteclose,	iteread,	itewrite,	/*13*/
232*47581Skarels 	  iteioctl,	enodev,		nullop,		ite_tty,
233*47581Skarels 	  ttselect,	enodev,		NULL },
234*47581Skarels 	{ hilopen,	hilclose,	hilread,	nullop,		/*14*/
235*47581Skarels 	  hilioctl,	enodev,		nullop,		NULL,
236*47581Skarels 	  hilselect,	hilmap,		NULL },
237*47581Skarels 	{ dcmopen,	dcmclose,	dcmread,	dcmwrite,	/*15*/
238*47581Skarels 	  dcmioctl,	dcmstop,	nullop,		dcm_tty,
239*47581Skarels 	  ttselect,	enodev,		NULL },
240*47581Skarels 	{ enodev,	enodev,		enodev,		enodev,		/*16*/
241*47581Skarels 	  enodev,	enodev,		nullop,		NULL,
242*47581Skarels 	  seltrue,	enodev,		NULL },
243*47581Skarels 	{ cdopen,	nullop,		cdread,		cdwrite,	/*17*/
244*47581Skarels 	  cdioctl,	enodev,		nullop,		NULL,
245*47581Skarels 	  seltrue,	enodev,		cdstrategy },
246*47581Skarels 	{ clockopen,	clockclose,	nullop,		nullop,		/*18*/
247*47581Skarels 	  clockioctl,	enodev,		nullop,		NULL,
248*47581Skarels 	  nullop,	clockmap,	NULL },
249*47581Skarels #ifdef notdef
250*47581Skarels 	{ fdopen,	nullop,		fdread,		fdwrite,	/*19*/
251*47581Skarels 	  fdioctl,	enodev,		nullop,		NULL,
252*47581Skarels 	  seltrue,	enodev,		NULL },
253*47581Skarels #else
254*47581Skarels 	{ enodev,	enodev,		enodev,		enodev,		/*19*/
255*47581Skarels 	  enodev,	enodev,		nullop,		NULL,
256*47581Skarels 	  seltrue,	enodev,		NULL },
257*47581Skarels #endif
258*47581Skarels 	{ enodev,	enodev,		enodev,		enodev,		/*20*/
259*47581Skarels 	  enodev,	enodev,		nullop,		NULL,
260*47581Skarels 	  seltrue,	enodev,		NULL },
261*47581Skarels 	{ fdopen,	enodev,		enodev,		enodev,		/*21*/
262*47581Skarels 	  enodev,	enodev,		enodev,		NULL,
263*47581Skarels 	  enodev,	enodev,		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