xref: /csrg-svn/sys/hp300/hp300/conf.c (revision 41475)
1*41475Smckusick /*
2*41475Smckusick  * Copyright (c) 1982, 1990 Regents of the University of California.
3*41475Smckusick  * All rights reserved.
4*41475Smckusick  *
5*41475Smckusick  * %sccs.include.redist.c%
6*41475Smckusick  *
7*41475Smckusick  *	@(#)conf.c	7.1 (Berkeley) 05/08/90
8*41475Smckusick  */
9*41475Smckusick 
10*41475Smckusick #include "param.h"
11*41475Smckusick #include "systm.h"
12*41475Smckusick #include "buf.h"
13*41475Smckusick #include "ioctl.h"
14*41475Smckusick #include "tty.h"
15*41475Smckusick #include "conf.h"
16*41475Smckusick 
17*41475Smckusick int	nulldev(), nodev(), rawread(), rawwrite(), swstrategy();
18*41475Smckusick 
19*41475Smckusick #include "ct.h"
20*41475Smckusick #if NCT > 0
21*41475Smckusick int	ctopen(),ctclose(),ctstrategy(),ctread(),ctwrite(),ctdump(),ctioctl();
22*41475Smckusick #else
23*41475Smckusick #define	ctopen		nodev
24*41475Smckusick #define	ctclose		nodev
25*41475Smckusick #define	ctstrategy	nodev
26*41475Smckusick #define	ctread		nodev
27*41475Smckusick #define	ctwrite		nodev
28*41475Smckusick #define	ctdump		nodev
29*41475Smckusick #define	ctioctl		nodev
30*41475Smckusick #endif
31*41475Smckusick 
32*41475Smckusick #include "rd.h"
33*41475Smckusick #if NRD > 0
34*41475Smckusick int	rdopen(),rdstrategy(),rdread(),rdwrite(),rddump(),rdioctl(),rdsize();
35*41475Smckusick #else
36*41475Smckusick #define	rdopen		nodev
37*41475Smckusick #define	rdstrategy	nodev
38*41475Smckusick #define	rdread		nodev
39*41475Smckusick #define	rdwrite		nodev
40*41475Smckusick #define	rddump		nodev
41*41475Smckusick #define	rdioctl		nodev
42*41475Smckusick #define	rdsize		0
43*41475Smckusick #endif
44*41475Smckusick 
45*41475Smckusick #include "sd.h"
46*41475Smckusick #if NSD > 0
47*41475Smckusick int	sdopen(),sdstrategy(),sdread(),sdwrite(),sddump(),sdioctl(),sdsize();
48*41475Smckusick #else
49*41475Smckusick #define	sdopen		nodev
50*41475Smckusick #define	sdstrategy	nodev
51*41475Smckusick #define	sdread		nodev
52*41475Smckusick #define	sdwrite		nodev
53*41475Smckusick #define	sddump		nodev
54*41475Smckusick #define	sdioctl		nodev
55*41475Smckusick #define	sdsize		0
56*41475Smckusick #endif
57*41475Smckusick 
58*41475Smckusick #include "cd.h"
59*41475Smckusick #if NCD > 0
60*41475Smckusick int	cdopen(),cdstrategy(),cdread(),cdwrite(),cddump(),cdioctl(),cdsize();
61*41475Smckusick #else
62*41475Smckusick #define	cdopen		nodev
63*41475Smckusick #define	cdstrategy	nodev
64*41475Smckusick #define	cdread		nodev
65*41475Smckusick #define	cdwrite		nodev
66*41475Smckusick #define	cddump		nodev
67*41475Smckusick #define	cdioctl		nodev
68*41475Smckusick #define	cdsize		0
69*41475Smckusick #endif
70*41475Smckusick 
71*41475Smckusick #include "fd.h"
72*41475Smckusick #if NFD > 0
73*41475Smckusick int	fdopen(),fdstrategy(),fdread(),fdwrite(),fddump(),fdioctl(),fdsize();
74*41475Smckusick #else
75*41475Smckusick #define	fdopen		nodev
76*41475Smckusick #define	fdstrategy	nodev
77*41475Smckusick #define	fdread		nodev
78*41475Smckusick #define	fdwrite		nodev
79*41475Smckusick #define	fddump		nodev
80*41475Smckusick #define	fdioctl		nodev
81*41475Smckusick #define	fdsize		0
82*41475Smckusick #endif
83*41475Smckusick 
84*41475Smckusick struct bdevsw	bdevsw[] =
85*41475Smckusick {
86*41475Smckusick 	{ ctopen,	ctclose,	ctstrategy,	ctioctl,	/*0*/
87*41475Smckusick 	  ctdump,	0,		B_TAPE },
88*41475Smckusick 	{ nodev,	nodev,		nodev,		nodev,		/*1*/
89*41475Smckusick 	  nodev,	0,		0 },
90*41475Smckusick 	{ rdopen,	nulldev,	rdstrategy,	rdioctl,	/*2*/
91*41475Smckusick 	  rddump,	rdsize,		0 },
92*41475Smckusick 	{ nodev,	nodev,		swstrategy,	nodev,		/*3*/
93*41475Smckusick 	  nodev,	0,		0 },
94*41475Smckusick 	{ sdopen,	nulldev,	sdstrategy,	sdioctl,	/*4*/
95*41475Smckusick 	  sddump,	sdsize,		0 },
96*41475Smckusick 	{ cdopen,	nulldev,	cdstrategy,	cdioctl,	/*5*/
97*41475Smckusick 	  cddump,	cdsize,		0 },
98*41475Smckusick 	{ fdopen,	nulldev,	fdstrategy,	fdioctl,	/*6*/
99*41475Smckusick 	  fddump,	fdsize,		0 },
100*41475Smckusick };
101*41475Smckusick int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
102*41475Smckusick 
103*41475Smckusick int	cnopen(),cnclose(),cnread(),cnwrite(),cnioctl(),cnselect();
104*41475Smckusick 
105*41475Smckusick int	syopen(),syread(),sywrite(),syioctl(),syselect();
106*41475Smckusick 
107*41475Smckusick int 	mmrw();
108*41475Smckusick #define	mmselect	seltrue
109*41475Smckusick 
110*41475Smckusick #include "pty.h"
111*41475Smckusick #if NPTY > 0
112*41475Smckusick int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();
113*41475Smckusick int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();
114*41475Smckusick int	ptyioctl();
115*41475Smckusick struct	tty pt_tty[];
116*41475Smckusick #else
117*41475Smckusick #define ptsopen		nodev
118*41475Smckusick #define ptsclose	nodev
119*41475Smckusick #define ptsread		nodev
120*41475Smckusick #define ptswrite	nodev
121*41475Smckusick #define ptcopen		nodev
122*41475Smckusick #define ptcclose	nodev
123*41475Smckusick #define ptcread		nodev
124*41475Smckusick #define ptcwrite	nodev
125*41475Smckusick #define ptyioctl	nodev
126*41475Smckusick #define	pt_tty		0
127*41475Smckusick #define	ptcselect	nodev
128*41475Smckusick #define	ptsstop		nulldev
129*41475Smckusick #endif
130*41475Smckusick 
131*41475Smckusick #include "ppi.h"
132*41475Smckusick #if NPPI > 0
133*41475Smckusick int	ppiopen(),ppiclose(),ppiread(),ppiwrite();
134*41475Smckusick #else
135*41475Smckusick #define ppiopen		nodev
136*41475Smckusick #define ppiclose	nodev
137*41475Smckusick #define ppiread		nodev
138*41475Smckusick #define ppiwrite	nodev
139*41475Smckusick #endif
140*41475Smckusick 
141*41475Smckusick #include "ite.h"
142*41475Smckusick #if NITE > 0
143*41475Smckusick int	iteopen(),iteclose(),iteread(),itewrite(),iteioctl();
144*41475Smckusick struct	tty ite_tty[];
145*41475Smckusick #else
146*41475Smckusick #define iteopen		nodev
147*41475Smckusick #define iteclose	nodev
148*41475Smckusick #define iteread		nodev
149*41475Smckusick #define itewrite	nodev
150*41475Smckusick #define itestop		nulldev
151*41475Smckusick #define iteioctl	nodev
152*41475Smckusick #define ite_tty		0
153*41475Smckusick #endif
154*41475Smckusick 
155*41475Smckusick #include "dca.h"
156*41475Smckusick #if NDCA > 0
157*41475Smckusick int	dcaopen(),dcaclose(),dcaread(),dcawrite(),dcastop(),dcaioctl();
158*41475Smckusick struct	tty dca_tty[];
159*41475Smckusick #else
160*41475Smckusick #define dcaopen		nodev
161*41475Smckusick #define dcaclose	nodev
162*41475Smckusick #define dcaread		nodev
163*41475Smckusick #define dcawrite	nodev
164*41475Smckusick #define dcastop		nulldev
165*41475Smckusick #define dcaioctl	nodev
166*41475Smckusick #define dca_tty		0
167*41475Smckusick #endif
168*41475Smckusick 
169*41475Smckusick #include "dcm.h"
170*41475Smckusick #if NDCM > 0
171*41475Smckusick int	dcmopen(),dcmclose(),dcmread(),dcmwrite(),dcmstop(),dcmioctl();
172*41475Smckusick struct	tty dcm_tty[];
173*41475Smckusick #else
174*41475Smckusick #define dcmopen		nodev
175*41475Smckusick #define dcmclose	nodev
176*41475Smckusick #define dcmread		nodev
177*41475Smckusick #define dcmwrite	nodev
178*41475Smckusick #define dcmstop		nulldev
179*41475Smckusick #define dcmioctl	nodev
180*41475Smckusick #define dcm_tty		0
181*41475Smckusick #endif
182*41475Smckusick 
183*41475Smckusick #include "clock.h"
184*41475Smckusick #if NCLOCK > 0
185*41475Smckusick int	clockopen(),clockclose(),clockioctl(),clockmap();
186*41475Smckusick #else
187*41475Smckusick #define clockopen	nodev
188*41475Smckusick #define clockclose	nodev
189*41475Smckusick #define clockioctl	nodev
190*41475Smckusick #define clockmap	nodev
191*41475Smckusick #endif
192*41475Smckusick 
193*41475Smckusick int	logopen(),logclose(),logread(),logioctl(),logselect();
194*41475Smckusick 
195*41475Smckusick int	ttselect(), seltrue();
196*41475Smckusick 
197*41475Smckusick int	grfopen(),grfclose(),grfioctl(),grfselect(),grfmap();
198*41475Smckusick 
199*41475Smckusick int	hilopen(),hilclose(),hilioctl(),hilmap(),hilselect(),hilread();
200*41475Smckusick 
201*41475Smckusick struct cdevsw	cdevsw[] =
202*41475Smckusick {
203*41475Smckusick 	cnopen,		cnclose,	cnread,		cnwrite,	/*0*/
204*41475Smckusick 	cnioctl,	nulldev,	nulldev,	NULL,
205*41475Smckusick 	cnselect,	nodev,		NULL,
206*41475Smckusick 	syopen,		nulldev,	syread,		sywrite,	/*1*/
207*41475Smckusick 	syioctl,	nulldev,	nulldev,	NULL,
208*41475Smckusick 	syselect,	nodev,		NULL,
209*41475Smckusick 	nulldev,	nulldev,	mmrw,		mmrw,		/*2*/
210*41475Smckusick 	nodev,		nulldev,	nulldev,	NULL,
211*41475Smckusick 	mmselect,	nodev,		NULL,
212*41475Smckusick 	nulldev,	nulldev,	rawread,	rawwrite,	/*3*/
213*41475Smckusick 	nodev,		nodev,		nulldev,	NULL,
214*41475Smckusick 	nodev,		nodev,		swstrategy,
215*41475Smckusick 	ptsopen,	ptsclose,	ptsread,	ptswrite,	/*4*/
216*41475Smckusick 	ptyioctl,	ptsstop,	nulldev,	pt_tty,
217*41475Smckusick 	ttselect,	nodev,		NULL,
218*41475Smckusick 	ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*5*/
219*41475Smckusick 	ptyioctl,	nulldev,	nulldev,	pt_tty,
220*41475Smckusick 	ptcselect,	nodev,		NULL,
221*41475Smckusick 	logopen,	logclose,	logread,	nodev,		/*6*/
222*41475Smckusick 	logioctl,	nodev,		nulldev,	NULL,
223*41475Smckusick 	logselect,	nodev,		NULL,
224*41475Smckusick 	ctopen,		ctclose,	ctread,		ctwrite,	/*7*/
225*41475Smckusick 	ctioctl,	nodev,		nulldev,	NULL,
226*41475Smckusick 	seltrue,	nodev,		ctstrategy,
227*41475Smckusick 	sdopen,		nulldev,	sdread,		sdwrite,	/*8*/
228*41475Smckusick 	sdioctl,	nodev,		nulldev,	NULL,
229*41475Smckusick 	seltrue,	nodev,		sdstrategy,
230*41475Smckusick 	rdopen,		nulldev,	rdread,		rdwrite,	/*9*/
231*41475Smckusick 	rdioctl,	nodev,		nulldev,	NULL,
232*41475Smckusick 	seltrue,	nodev,		rdstrategy,
233*41475Smckusick 	grfopen,	grfclose,	nulldev,	nulldev,	/*10*/
234*41475Smckusick 	grfioctl,	nodev,		nulldev,	NULL,
235*41475Smckusick 	grfselect,	grfmap,		NULL,
236*41475Smckusick 	ppiopen,	ppiclose,	ppiread,	ppiwrite,	/*11*/
237*41475Smckusick 	nodev,		nodev,		nulldev,	NULL,
238*41475Smckusick 	nodev,		nodev,		NULL,
239*41475Smckusick 	dcaopen,	dcaclose,	dcaread,	dcawrite,	/*12*/
240*41475Smckusick 	dcaioctl,	dcastop,	nulldev,	dca_tty,
241*41475Smckusick 	ttselect,	nodev,		NULL,
242*41475Smckusick 	iteopen,	iteclose,	iteread,	itewrite,	/*13*/
243*41475Smckusick 	iteioctl,	nodev,		nulldev,	ite_tty,
244*41475Smckusick 	ttselect,	nodev,		NULL,
245*41475Smckusick 	hilopen,	hilclose,	hilread,	nulldev,	/*14*/
246*41475Smckusick 	hilioctl,	nodev,		nulldev,	NULL,
247*41475Smckusick 	hilselect,	hilmap,		NULL,
248*41475Smckusick 	dcmopen,	dcmclose,	dcmread,	dcmwrite,	/*15*/
249*41475Smckusick 	dcmioctl,	dcmstop,	nulldev,	dcm_tty,
250*41475Smckusick 	ttselect,	nodev,		NULL,
251*41475Smckusick 	nodev,		nodev,		nodev,		nodev,		/*16*/
252*41475Smckusick 	nodev,		nodev,		nulldev,	NULL,
253*41475Smckusick 	seltrue,	nodev,		NULL,
254*41475Smckusick 	cdopen,		nulldev,	cdread,		cdwrite,	/*17*/
255*41475Smckusick 	cdioctl,	nodev,		nulldev,	NULL,
256*41475Smckusick 	seltrue,	nodev,		cdstrategy,
257*41475Smckusick 	clockopen,	clockclose,	nulldev,	nulldev,	/*18*/
258*41475Smckusick 	clockioctl,	nodev,		nulldev,	NULL,
259*41475Smckusick 	nulldev,	clockmap,	NULL,
260*41475Smckusick 	fdopen,		nulldev,	fdread,		fdwrite,	/*19*/
261*41475Smckusick 	fdioctl,	nodev,		nulldev,	NULL,
262*41475Smckusick 	seltrue,	nodev,		NULL,
263*41475Smckusick };
264*41475Smckusick int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
265*41475Smckusick 
266*41475Smckusick int	mem_no = 2; 	/* major device number of memory special file */
267*41475Smckusick 
268*41475Smckusick /*
269*41475Smckusick  * Swapdev is a fake device implemented
270*41475Smckusick  * in sw.c used only internally to get to swstrategy.
271*41475Smckusick  * It cannot be provided to the users, because the
272*41475Smckusick  * swstrategy routine munches the b_dev and b_blkno entries
273*41475Smckusick  * before calling the appropriate driver.  This would horribly
274*41475Smckusick  * confuse, e.g. the hashing routines. Instead, /dev/drum is
275*41475Smckusick  * provided as a character (raw) device.
276*41475Smckusick  */
277*41475Smckusick dev_t	swapdev = makedev(3, 0);
278