xref: /original-bsd/sys/vax/vax/conf.c (revision f0fd5f8a)
1 /*	conf.c	4.62	82/10/31	*/
2 
3 #include "../h/param.h"
4 #include "../h/systm.h"
5 #include "../h/buf.h"
6 #include "../h/tty.h"
7 #include "../h/conf.h"
8 
9 int	nulldev();
10 int	nodev();
11 
12 #include "hp.h"
13 #if NHP > 0
14 int	hpopen(),hpstrategy(),hpread(),hpwrite(),hpdump(),hpioctl();
15 #else
16 #define	hpopen		nodev
17 #define	hpstrategy	nodev
18 #define	hpread		nodev
19 #define	hpwrite		nodev
20 #define	hpdump		nodev
21 #define	hpioctl		nodev
22 #endif
23 
24 #include "tu.h"
25 #if NHT > 0
26 int	htopen(),htclose(),htstrategy(),htread(),htwrite(),htdump(),htioctl();
27 #else
28 #define	htopen		nodev
29 #define	htclose		nodev
30 #define	htstrategy	nodev
31 #define	htread		nodev
32 #define	htwrite		nodev
33 #define	htdump		nodev
34 #define	htioctl		nodev
35 #endif
36 
37 #include "rk.h"
38 #if NHK > 0
39 int	rkopen(),rkstrategy(),rkread(),rkwrite(),rkintr(),rkdump(),rkreset();
40 #else
41 #define	rkopen		nodev
42 #define	rkstrategy	nodev
43 #define	rkread		nodev
44 #define	rkwrite		nodev
45 #define	rkintr		nodev
46 #define	rkdump		nodev
47 #define	rkreset		nodev
48 #endif
49 
50 #include "te.h"
51 #if NTE > 0
52 int	tmopen(),tmclose(),tmstrategy(),tmread(),tmwrite();
53 int	tmioctl(),tmdump(),tmreset();
54 #else
55 #define	tmopen		nodev
56 #define	tmclose		nodev
57 #define	tmstrategy	nodev
58 #define	tmread		nodev
59 #define	tmwrite		nodev
60 #define	tmioctl		nodev
61 #define	tmdump		nodev
62 #define	tmreset		nodev
63 #endif
64 
65 #include "ts.h"
66 #if NTS > 0
67 int	tsopen(),tsclose(),tsstrategy(),tsread(),tswrite();
68 int	tsioctl(),tsdump(),tsreset();
69 #else
70 #define	tsopen		nodev
71 #define	tsclose		nodev
72 #define	tsstrategy	nodev
73 #define	tsread		nodev
74 #define	tswrite		nodev
75 #define	tsioctl		nodev
76 #define	tsdump		nodev
77 #define	tsreset		nodev
78 #endif
79 
80 #include "mu.h"
81 #if NMT > 0
82 int	mtopen(),mtclose(),mtstrategy(),mtread(),mtwrite();
83 int	mtioctl(),mtdump();
84 #else
85 #define	mtopen		nodev
86 #define	mtclose		nodev
87 #define	mtstrategy	nodev
88 #define	mtread		nodev
89 #define	mtwrite		nodev
90 #define	mtioctl		nodev
91 #define	mtdump		nodev
92 #endif
93 
94 #include "ra.h"
95 #if NUDA > 0
96 int	udopen(),udstrategy(),udread(),udwrite(),udreset(),uddump();
97 #else
98 #define	udopen		nodev
99 #define	udstrategy	nodev
100 #define	udread		nodev
101 #define	udwrite		nodev
102 #define	udreset		nulldev
103 #define	uddump		nodev
104 #endif
105 
106 #include "up.h"
107 #if NSC > 0
108 int	upopen(),upstrategy(),upread(),upwrite(),upreset(),updump();
109 #else
110 #define	upopen		nodev
111 #define	upstrategy	nodev
112 #define	upread		nodev
113 #define	upwrite		nodev
114 #define	upreset		nulldev
115 #define	updump		nodev
116 #endif
117 
118 #include "tj.h"
119 #if NUT > 0
120 int	utopen(),utclose(),utstrategy(),utread(),utwrite(),utioctl();
121 int	utreset(),utdump();
122 #else
123 #define	utopen		nodev
124 #define	utclose		nodev
125 #define	utread		nodev
126 #define	utstrategy	nodev
127 #define	utwrite		nodev
128 #define	utreset		nulldev
129 #define	utioctl		nodev
130 #define	utdump		nodev
131 #endif
132 
133 #include "rb.h"
134 #if NIDC > 0
135 int	idcopen(),idcstrategy(),idcread(),idcwrite(),idcreset(),idcdump();
136 #else
137 #define	idcopen		nodev
138 #define	idcstrategy	nodev
139 #define	idcread		nodev
140 #define	idcwrite	nodev
141 #define	idcreset	nulldev
142 #define	idcdump		nodev
143 #endif
144 
145 #if defined(VAX750) || defined(VAX730)
146 int	tuopen(),tuclose(),tustrategy();
147 #else
148 #define	tuopen		nodev
149 #define	tuclose		nodev
150 #define	tustrategy	nodev
151 #endif
152 
153 int	swstrategy(),swread(),swwrite();
154 
155 struct bdevsw	bdevsw[] =
156 {
157 	hpopen,		nulldev,	hpstrategy,	hpdump,	0,	/*0*/
158 	htopen,		htclose,	htstrategy,	htdump,	B_TAPE,	/*1*/
159 	upopen,		nulldev,	upstrategy,	updump,	0,	/*2*/
160 	rkopen,		nulldev,	rkstrategy,	rkdump,	0,	/*3*/
161 	nodev,		nodev,		swstrategy,	nodev,	0,	/*4*/
162 	tmopen,		tmclose,	tmstrategy,	tmdump,	B_TAPE,	/*5*/
163 	tsopen,		tsclose,	tsstrategy,	tsdump,	B_TAPE,	/*6*/
164 	mtopen,		mtclose,	mtstrategy,	mtdump,	B_TAPE,	/*7*/
165 	tuopen,		tuclose,	tustrategy,	nodev,	B_TAPE,	/*8*/
166 	udopen,		nulldev,	udstrategy,	uddump,	0,	/*9*/
167 	utopen,		utclose,	utstrategy,	utdump,	B_TAPE,	/*10*/
168 	idcopen,	nodev,		idcstrategy,	idcdump,0,	/*11*/
169 };
170 int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
171 
172 int	cnopen(),cnclose(),cnread(),cnwrite(),cnioctl();
173 struct tty cons;
174 
175 #include "acc.h"
176 #if NACC > 0
177 int     accreset();
178 #else
179 #define accreset nulldev
180 #endif
181 
182 #include "ct.h"
183 #if NCT > 0
184 int	ctopen(),ctclose(),ctwrite();
185 #else
186 #define	ctopen	nulldev
187 #define	ctclose	nulldev
188 #define	ctwrite	nulldev
189 #endif
190 
191 #include "dh.h"
192 #if NDH == 0
193 #define	dhopen	nodev
194 #define	dhclose	nodev
195 #define	dhread	nodev
196 #define	dhwrite	nodev
197 #define	dhioctl	nodev
198 #define	dhstop	nodev
199 #define	dhreset	nulldev
200 #define	dh11	0
201 #else
202 int	dhopen(),dhclose(),dhread(),dhwrite(),dhioctl(),dhstop(),dhreset();
203 struct	tty dh11[];
204 #endif
205 
206 #include "dmf.h"
207 #if NDMF == 0
208 #define	dmfopen	nodev
209 #define	dmfclose	nodev
210 #define	dmfread	nodev
211 #define	dmfwrite	nodev
212 #define	dmfioctl	nodev
213 #define	dmfstop	nodev
214 #define	dmfreset	nulldev
215 #define	dmf11	0
216 #else
217 int	dmfopen(),dmfclose(),dmfread(),dmfwrite(),dmfioctl(),dmfstop(),dmfreset();
218 struct	tty dmf_tty[];
219 #endif
220 
221 #if VAX780
222 int	flopen(),flclose(),flread(),flwrite();
223 #endif
224 
225 #include "dz.h"
226 #if NDZ == 0
227 #define	dzopen	nodev
228 #define	dzclose	nodev
229 #define	dzread	nodev
230 #define	dzwrite	nodev
231 #define	dzioctl	nodev
232 #define	dzstop	nodev
233 #define	dzreset	nulldev
234 #define	dz_tty	0
235 #else
236 int	dzopen(),dzclose(),dzread(),dzwrite(),dzioctl(),dzstop(),dzreset();
237 struct	tty dz_tty[];
238 #endif
239 
240 #include "lp.h"
241 #if NLP > 0
242 int	lpopen(),lpclose(),lpwrite(),lpreset();
243 #else
244 #define	lpopen		nodev
245 #define	lpclose		nodev
246 #define	lpwrite		nodev
247 #define	lpreset		nulldev
248 #endif
249 
250 int	syopen(),syread(),sywrite(),syioctl(),syselect();
251 
252 int 	mmread(),mmwrite();
253 #define	mmselect	seltrue
254 
255 #include "va.h"
256 #if NVA > 0
257 int	vaopen(),vaclose(),vawrite(),vaioctl(),vareset(),vaselect();
258 #else
259 #define	vaopen		nodev
260 #define	vaclose		nodev
261 #define	vawrite		nodev
262 #define	vaopen		nodev
263 #define	vaioctl		nodev
264 #define	vareset		nulldev
265 #define	vaselect	nodev
266 #endif
267 
268 #include "vp.h"
269 #if NVP > 0
270 int	vpopen(),vpclose(),vpwrite(),vpioctl(),vpreset(),vpselect();
271 #else
272 #define	vpopen		nodev
273 #define	vpclose		nodev
274 #define	vpwrite		nodev
275 #define	vpioctl		nodev
276 #define	vpreset		nulldev
277 #define	vpselect	nodev
278 #endif
279 
280 #include "pty.h"
281 #if NPTY > 0
282 int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();
283 int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();
284 int	ptyioctl();
285 struct	tty pt_tty[];
286 #else
287 #define ptsopen		nodev
288 #define ptsclose	nodev
289 #define ptsread		nodev
290 #define ptswrite	nodev
291 #define ptcopen		nodev
292 #define ptcclose	nodev
293 #define ptcread		nodev
294 #define ptcwrite	nodev
295 #define ptyioctl	nodev
296 #define	pt_tty		0
297 #define	ptcselect	nodev
298 #define	ptsstop		nulldev
299 #endif
300 
301 #include "lpa.h"
302 #if NLPA > 0
303 int	lpaopen(),lpaclose(),lparead(),lpawrite(),lpaioctl();
304 #else
305 #define	lpaopen		nodev
306 #define	lpaclose	nodev
307 #define	lparead		nodev
308 #define	lpawrite	nodev
309 #define	lpaioctl	nodev
310 #endif
311 
312 #include "dn.h"
313 #if NDN > 0
314 int	dnopen(),dnclose(),dnwrite();
315 #else
316 #define	dnopen		nodev
317 #define	dnclose		nodev
318 #define	dnwrite		nodev
319 #endif
320 
321 #include "gpib.h"
322 #if NGPIB > 0
323 int	gpibopen(),gpibclose(),gpibread(),gpibwrite(),gpibioctl();
324 #else
325 #define	gpibopen	nodev
326 #define	gpibclose	nodev
327 #define	gpibread	nodev
328 #define	gpibwrite	nodev
329 #define	gpibioctl	nodev
330 #endif
331 
332 #include "ik.h"
333 #if NIK > 0
334 int	ikopen(),ikclose(),ikread(),ikwrite(),ikioctl(),ikreset();
335 #else
336 #define ikopen nodev
337 #define ikclose nodev
338 #define ikread nodev
339 #define ikwrite nodev
340 #define ikioctl nodev
341 #define ikreset nodev
342 #endif
343 
344 #include "ps.h"
345 #if NPS > 0
346 int	psopen(),psclose(),psread(),pswrite(),psioctl(),psreset();
347 #else
348 #define psopen nodev
349 #define psclose nodev
350 #define psread nodev
351 #define pswrite nodev
352 #define psopen nodev
353 #define psioctl nodev
354 #define psreset nodev
355 #endif
356 
357 #include "ib.h"
358 #if NIB > 0
359 int	ibopen(),ibclose(),ibread(),ibwrite(),ibioctl();
360 #else
361 #define	ibopen	nodev
362 #define	ibclose	nodev
363 #define	ibread	nodev
364 #define	ibwrite	nodev
365 #define	ibioctl	nodev
366 #endif
367 
368 #include "ad.h"
369 #if NAD > 0
370 int	adopen(),adclose(),adioctl(),adreset();
371 #else
372 #define adopen nodev
373 #define adclose nodev
374 #define adioctl nodev
375 #define adreset nodev
376 #endif
377 
378 /* #include "efs.h" */
379 #if NEFS > 0
380 int	efsopen(),efsclose(),efsread(),efswrite(),efsioctl(),efsreset();
381 #else
382 #define efsopen nodev
383 #define efsclose nodev
384 #define efsread nodev
385 #define efswrite nodev
386 #define efsioctl nodev
387 #define efsreset nodev
388 #endif
389 
390 int	ttselect(), seltrue();
391 
392 struct cdevsw	cdevsw[] =
393 {
394 	cnopen,		cnclose,	cnread,		cnwrite,	/*0*/
395 	cnioctl,	nulldev,	nulldev,	&cons,
396 	ttselect,	nodev,
397 	dzopen,		dzclose,	dzread,		dzwrite,	/*1*/
398 	dzioctl,	dzstop,		dzreset,	dz_tty,
399 	ttselect,	nodev,
400 	syopen,		nulldev,	syread,		sywrite,	/*2*/
401 	syioctl,	nulldev,	nulldev,	0,
402 	syselect,	nodev,
403 	nulldev,	nulldev,	mmread,		mmwrite,	/*3*/
404 	nodev,		nulldev,	nulldev,	0,
405 	mmselect,	nodev,
406 	hpopen,		nulldev,	hpread,		hpwrite,	/*4*/
407 	hpioctl,	nodev,		nulldev,	0,
408 	seltrue,	nodev,
409 	htopen,		htclose,	htread,		htwrite,	/*5*/
410 	htioctl,	nodev,		nulldev,	0,
411 	seltrue,	nodev,
412 	vpopen,		vpclose,	nodev,		vpwrite,	/*6*/
413 	vpioctl,	nulldev,	vpreset,	0,
414 	vpselect,	nodev,
415 	nulldev,	nulldev,	swread,		swwrite,	/*7*/
416 	nodev,		nodev,		nulldev,	0,
417 	nodev,		nodev,
418 #if VAX780
419 	flopen,		flclose,	flread,		flwrite,	/*8*/
420 	nodev,		nodev,		nulldev,	0,
421 	seltrue,	nodev,
422 #else
423 	nodev,		nodev,		nodev,		nodev,		/*8*/
424 	nodev,		nodev,		nodev,		0,
425 	nodev,		nodev,
426 #endif
427 	udopen,		nulldev,	udread,		udwrite,	/*9*/
428 	nodev,		nodev,		udreset,		0,
429 	seltrue,	nodev,
430 	vaopen,		vaclose,	nodev,		vawrite,	/*10*/
431 	vaioctl,	nulldev,	vareset,	0,
432 	vaselect,	nodev,
433 	rkopen,		nulldev,	rkread,		rkwrite,	/*11*/
434 	nodev,		nodev,		rkreset,	0,
435 	seltrue,	nodev,
436 	dhopen,		dhclose,	dhread,		dhwrite,	/*12*/
437 	dhioctl,	dhstop,		dhreset,	dh11,
438 	ttselect,	nodev,
439 	upopen,		nulldev,	upread,		upwrite,	/*13*/
440 	nodev,		nodev,		upreset,	0,
441 	seltrue,	nodev,
442 	tmopen,		tmclose,	tmread,		tmwrite,	/*14*/
443 	tmioctl,	nodev,		tmreset,	0,
444 	seltrue,	nodev,
445 	lpopen,		lpclose,	nodev,		lpwrite,	/*15*/
446 	nodev,		nodev,		lpreset,	0,
447 	seltrue,	nodev,
448 	tsopen,		tsclose,	tsread,		tswrite,	/*16*/
449 	tsioctl,	nodev,		tsreset,	0,
450 	seltrue,	nodev,
451 	utopen,		utclose,	utread,		utwrite,	/*17*/
452 	utioctl,	nodev,		utreset,	0,
453 	seltrue,	nodev,
454 	ctopen,		ctclose,	nodev,		ctwrite,	/*18*/
455 	nodev,		nodev,		nulldev,	0,
456 	seltrue,	nodev,
457 	mtopen,		mtclose,	mtread,		mtwrite,	/*19*/
458 	mtioctl,	nodev,		nodev,		0,
459 	seltrue,	nodev,
460 	ptsopen,	ptsclose,	ptsread,	ptswrite,	/*20*/
461 	ptyioctl,	ptsstop,	nodev,		pt_tty,
462 	ttselect,	nodev,
463 	ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*21*/
464 	ptyioctl,	nulldev,	nodev,		pt_tty,
465 	ptcselect,	nodev,
466 	dmfopen,	dmfclose,	dmfread,	dmfwrite,	/*22*/
467 	dmfioctl,	dmfstop,	dmfreset,	0,
468 	ttselect,	nodev,
469 	idcopen,	nulldev,	idcread,	idcwrite,	/*23*/
470 	nodev,		nodev,		idcreset,	0,
471 	seltrue,	nodev,
472 	dnopen,		dnclose,	nodev,		dnwrite,	/*24*/
473 	nodev,		nodev,		nodev,		0,
474 	seltrue,	nodev,
475 /* 25-29 reserved to local sites */
476 	gpibopen,	gpibclose,	gpibread,	gpibwrite,	/*25*/
477 	gpibioctl,	nulldev,	nodev,		0,
478 	seltrue,	nodev,
479 	lpaopen,	lpaclose,	lparead,	lpawrite,	/*26*/
480 	lpaioctl,	nodev,		nulldev,	0,
481 	seltrue,	nodev,
482 	psopen,		psclose,	psread,		pswrite,	/*27*/
483 	psioctl,	nodev,		psreset,	0,
484 	seltrue,	nodev,
485 	ibopen,		ibclose,	ibread,		ibwrite,	/*28*/
486 	ibioctl,	nodev,		nodev,		0,
487 	seltrue,	nodev,
488 	adopen,		adclose,	nodev,		nodev,		/*29*/
489 	adioctl,	nodev,		adreset,	0,
490 	seltrue,	nodev,
491 	efsopen,	efsclose,	efsread,	efswrite,	/*30*/
492 	efsioctl,	nodev,		efsreset,	0,
493 	seltrue,	nodev,
494 	ikopen,		ikclose,	ikread,		ikwrite,	/*31*/
495 	ikioctl,	nodev,		ikreset,	0,
496 	seltrue,	nodev,
497 };
498 int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
499 
500 int	mem_no = 3; 	/* major device number of memory special file */
501 
502 /*
503  * Swapdev is a fake device implemented
504  * in sw.c used only internally to get to swstrategy.
505  * It cannot be provided to the users, because the
506  * swstrategy routine munches the b_dev and b_blkno entries
507  * before calling the appropriate driver.  This would horribly
508  * confuse, e.g. the hashing routines. Instead, /dev/drum is
509  * provided as a character (raw) device.
510  */
511 dev_t	swapdev = makedev(4, 0);
512