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