xref: /original-bsd/sys/vax/vax/conf.c (revision 3ca00c4d)
1 /*	conf.c	4.69	83/05/18	*/
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(),rlclose(),rlread(),rlwrite();
187 int	rlreset(),rlioctl(),rldump(),rlsize();
188 #else
189 #define	rlopen		nodev
190 #define	rlstrategy	nodev
191 #define	rlclose		nodev
192 #define	rlread		nodev
193 #define	rlwrite		nodev
194 #define	rlreset		nulldev
195 #define	rlioctl		nodev
196 #define	rldump		nodev
197 #define	rlsize		0
198 #endif
199 
200 int	swstrategy(),swread(),swwrite();
201 
202 struct bdevsw	bdevsw[] =
203 {
204 	{ hpopen,	nulldev,	hpstrategy,	hpdump,		/*0*/
205 	  hpsize,	0 },
206 	{ htopen,	htclose,	htstrategy,	htdump,		/*1*/
207 	  0,		B_TAPE },
208 	{ upopen,	nulldev,	upstrategy,	updump,		/*2*/
209 	  upsize,	0 },
210 	{ rkopen,	nulldev,	rkstrategy,	rkdump,		/*3*/
211 	  rksize,	0 },
212 	{ nodev,	nodev,		swstrategy,	nodev,		/*4*/
213 	  0,		0 },
214 	{ tmopen,	tmclose,	tmstrategy,	tmdump,		/*5*/
215 	  0,		B_TAPE },
216 	{ tsopen,	tsclose,	tsstrategy,	tsdump,		/*6*/
217 	  0,		B_TAPE },
218 	{ mtopen,	mtclose,	mtstrategy,	mtdump,		/*7*/
219 	  0,		B_TAPE },
220 	{ tuopen,	tuclose,	tustrategy,	nodev,		/*8*/
221 	  0,		B_TAPE },
222 	{ udopen,	nulldev,	udstrategy,	uddump,		/*9*/
223 	  udsize,	0 },
224 	{ utopen,	utclose,	utstrategy,	utdump,		/*10*/
225 	  0,		B_TAPE },
226 	{ idcopen,	nodev,		idcstrategy,	idcdump,	/*11*/
227 	  idcsize,	0 },
228 	{ rxopen,	rxclose,	rxstrategy,	nodev,		/*12*/
229 	  0,		0 },
230 	{ uuopen,	uuclose,	uustrategy,	nodev,		/*13*/
231 	  0,		0 },
232 	{ rlopen,	rlclose,	rlstrategy,	rldump,		/*14*/
233 	  rlsize,	0 },
234 };
235 int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
236 
237 int	cnopen(),cnclose(),cnread(),cnwrite(),cnioctl();
238 struct tty cons;
239 
240 #include "acc.h"
241 #if NACC > 0
242 int     accreset();
243 #else
244 #define accreset nulldev
245 #endif
246 
247 #include "ct.h"
248 #if NCT > 0
249 int	ctopen(),ctclose(),ctwrite();
250 #else
251 #define	ctopen	nulldev
252 #define	ctclose	nulldev
253 #define	ctwrite	nulldev
254 #endif
255 
256 #include "dh.h"
257 #if NDH == 0
258 #define	dhopen	nodev
259 #define	dhclose	nodev
260 #define	dhread	nodev
261 #define	dhwrite	nodev
262 #define	dhioctl	nodev
263 #define	dhstop	nodev
264 #define	dhreset	nulldev
265 #define	dh11	0
266 #else
267 int	dhopen(),dhclose(),dhread(),dhwrite(),dhioctl(),dhstop(),dhreset();
268 struct	tty dh11[];
269 #endif
270 
271 #include "dmf.h"
272 #if NDMF == 0
273 #define	dmfopen	nodev
274 #define	dmfclose	nodev
275 #define	dmfread	nodev
276 #define	dmfwrite	nodev
277 #define	dmfioctl	nodev
278 #define	dmfstop	nodev
279 #define	dmfreset	nulldev
280 #define	dmf_tty	0
281 #else
282 int	dmfopen(),dmfclose(),dmfread(),dmfwrite(),dmfioctl(),dmfstop(),dmfreset();
283 struct	tty dmf_tty[];
284 #endif
285 
286 #if VAX780
287 int	flopen(),flclose(),flread(),flwrite();
288 #endif
289 
290 #include "dz.h"
291 #if NDZ == 0
292 #define	dzopen	nodev
293 #define	dzclose	nodev
294 #define	dzread	nodev
295 #define	dzwrite	nodev
296 #define	dzioctl	nodev
297 #define	dzstop	nodev
298 #define	dzreset	nulldev
299 #define	dz_tty	0
300 #else
301 int	dzopen(),dzclose(),dzread(),dzwrite(),dzioctl(),dzstop(),dzreset();
302 struct	tty dz_tty[];
303 #endif
304 
305 #include "lp.h"
306 #if NLP > 0
307 int	lpopen(),lpclose(),lpwrite(),lpreset();
308 #else
309 #define	lpopen		nodev
310 #define	lpclose		nodev
311 #define	lpwrite		nodev
312 #define	lpreset		nulldev
313 #endif
314 
315 int	syopen(),syread(),sywrite(),syioctl(),syselect();
316 
317 int 	mmread(),mmwrite();
318 #define	mmselect	seltrue
319 
320 #include "va.h"
321 #if NVA > 0
322 int	vaopen(),vaclose(),vawrite(),vaioctl(),vareset(),vaselect();
323 #else
324 #define	vaopen		nodev
325 #define	vaclose		nodev
326 #define	vawrite		nodev
327 #define	vaopen		nodev
328 #define	vaioctl		nodev
329 #define	vareset		nulldev
330 #define	vaselect	nodev
331 #endif
332 
333 #include "vp.h"
334 #if NVP > 0
335 int	vpopen(),vpclose(),vpwrite(),vpioctl(),vpreset(),vpselect();
336 #else
337 #define	vpopen		nodev
338 #define	vpclose		nodev
339 #define	vpwrite		nodev
340 #define	vpioctl		nodev
341 #define	vpreset		nulldev
342 #define	vpselect	nodev
343 #endif
344 
345 #include "pty.h"
346 #if NPTY > 0
347 int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();
348 int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();
349 int	ptyioctl();
350 struct	tty pt_tty[];
351 #else
352 #define ptsopen		nodev
353 #define ptsclose	nodev
354 #define ptsread		nodev
355 #define ptswrite	nodev
356 #define ptcopen		nodev
357 #define ptcclose	nodev
358 #define ptcread		nodev
359 #define ptcwrite	nodev
360 #define ptyioctl	nodev
361 #define	pt_tty		0
362 #define	ptcselect	nodev
363 #define	ptsstop		nulldev
364 #endif
365 
366 #include "lpa.h"
367 #if NLPA > 0
368 int	lpaopen(),lpaclose(),lparead(),lpawrite(),lpaioctl();
369 #else
370 #define	lpaopen		nodev
371 #define	lpaclose	nodev
372 #define	lparead		nodev
373 #define	lpawrite	nodev
374 #define	lpaioctl	nodev
375 #endif
376 
377 #include "dn.h"
378 #if NDN > 0
379 int	dnopen(),dnclose(),dnwrite();
380 #else
381 #define	dnopen		nodev
382 #define	dnclose		nodev
383 #define	dnwrite		nodev
384 #endif
385 
386 #include "gpib.h"
387 #if NGPIB > 0
388 int	gpibopen(),gpibclose(),gpibread(),gpibwrite(),gpibioctl();
389 #else
390 #define	gpibopen	nodev
391 #define	gpibclose	nodev
392 #define	gpibread	nodev
393 #define	gpibwrite	nodev
394 #define	gpibioctl	nodev
395 #endif
396 
397 #include "ik.h"
398 #if NIK > 0
399 int	ikopen(),ikclose(),ikread(),ikwrite(),ikioctl(),ikreset();
400 #else
401 #define ikopen nodev
402 #define ikclose nodev
403 #define ikread nodev
404 #define ikwrite nodev
405 #define ikioctl nodev
406 #define ikreset nodev
407 #endif
408 
409 #include "ps.h"
410 #if NPS > 0
411 int	psopen(),psclose(),psread(),pswrite(),psioctl(),psreset();
412 #else
413 #define psopen nodev
414 #define psclose nodev
415 #define psread nodev
416 #define pswrite nodev
417 #define psopen nodev
418 #define psioctl nodev
419 #define psreset nodev
420 #endif
421 
422 #include "ib.h"
423 #if NIB > 0
424 int	ibopen(),ibclose(),ibread(),ibwrite(),ibioctl();
425 #else
426 #define	ibopen	nodev
427 #define	ibclose	nodev
428 #define	ibread	nodev
429 #define	ibwrite	nodev
430 #define	ibioctl	nodev
431 #endif
432 
433 #include "ad.h"
434 #if NAD > 0
435 int	adopen(),adclose(),adioctl(),adreset();
436 #else
437 #define adopen nodev
438 #define adclose nodev
439 #define adioctl nodev
440 #define adreset nodev
441 #endif
442 
443 int	ttselect(), seltrue();
444 
445 struct cdevsw	cdevsw[] =
446 {
447 	cnopen,		cnclose,	cnread,		cnwrite,	/*0*/
448 	cnioctl,	nulldev,	nulldev,	&cons,
449 	ttselect,	nodev,
450 	dzopen,		dzclose,	dzread,		dzwrite,	/*1*/
451 	dzioctl,	dzstop,		dzreset,	dz_tty,
452 	ttselect,	nodev,
453 	syopen,		nulldev,	syread,		sywrite,	/*2*/
454 	syioctl,	nulldev,	nulldev,	0,
455 	syselect,	nodev,
456 	nulldev,	nulldev,	mmread,		mmwrite,	/*3*/
457 	nodev,		nulldev,	nulldev,	0,
458 	mmselect,	nodev,
459 	hpopen,		nulldev,	hpread,		hpwrite,	/*4*/
460 	hpioctl,	nodev,		nulldev,	0,
461 	seltrue,	nodev,
462 	htopen,		htclose,	htread,		htwrite,	/*5*/
463 	htioctl,	nodev,		nulldev,	0,
464 	seltrue,	nodev,
465 	vpopen,		vpclose,	nodev,		vpwrite,	/*6*/
466 	vpioctl,	nulldev,	vpreset,	0,
467 	vpselect,	nodev,
468 	nulldev,	nulldev,	swread,		swwrite,	/*7*/
469 	nodev,		nodev,		nulldev,	0,
470 	nodev,		nodev,
471 #if VAX780
472 	flopen,		flclose,	flread,		flwrite,	/*8*/
473 	nodev,		nodev,		nulldev,	0,
474 	seltrue,	nodev,
475 #else
476 	nodev,		nodev,		nodev,		nodev,		/*8*/
477 	nodev,		nodev,		nodev,		0,
478 	nodev,		nodev,
479 #endif
480 	udopen,		nulldev,	udread,		udwrite,	/*9*/
481 	nodev,		nodev,		udreset,		0,
482 	seltrue,	nodev,
483 	vaopen,		vaclose,	nodev,		vawrite,	/*10*/
484 	vaioctl,	nulldev,	vareset,	0,
485 	vaselect,	nodev,
486 	rkopen,		nulldev,	rkread,		rkwrite,	/*11*/
487 	nodev,		nodev,		rkreset,	0,
488 	seltrue,	nodev,
489 	dhopen,		dhclose,	dhread,		dhwrite,	/*12*/
490 	dhioctl,	dhstop,		dhreset,	dh11,
491 	ttselect,	nodev,
492 	upopen,		nulldev,	upread,		upwrite,	/*13*/
493 	nodev,		nodev,		upreset,	0,
494 	seltrue,	nodev,
495 	tmopen,		tmclose,	tmread,		tmwrite,	/*14*/
496 	tmioctl,	nodev,		tmreset,	0,
497 	seltrue,	nodev,
498 	lpopen,		lpclose,	nodev,		lpwrite,	/*15*/
499 	nodev,		nodev,		lpreset,	0,
500 	seltrue,	nodev,
501 	tsopen,		tsclose,	tsread,		tswrite,	/*16*/
502 	tsioctl,	nodev,		tsreset,	0,
503 	seltrue,	nodev,
504 	utopen,		utclose,	utread,		utwrite,	/*17*/
505 	utioctl,	nodev,		utreset,	0,
506 	seltrue,	nodev,
507 	ctopen,		ctclose,	nodev,		ctwrite,	/*18*/
508 	nodev,		nodev,		nulldev,	0,
509 	seltrue,	nodev,
510 	mtopen,		mtclose,	mtread,		mtwrite,	/*19*/
511 	mtioctl,	nodev,		nodev,		0,
512 	seltrue,	nodev,
513 	ptsopen,	ptsclose,	ptsread,	ptswrite,	/*20*/
514 	ptyioctl,	ptsstop,	nodev,		pt_tty,
515 	ttselect,	nodev,
516 	ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*21*/
517 	ptyioctl,	nulldev,	nodev,		pt_tty,
518 	ptcselect,	nodev,
519 	dmfopen,	dmfclose,	dmfread,	dmfwrite,	/*22*/
520 	dmfioctl,	dmfstop,	dmfreset,	dmf_tty,
521 	ttselect,	nodev,
522 	idcopen,	nulldev,	idcread,	idcwrite,	/*23*/
523 	nodev,		nodev,		idcreset,	0,
524 	seltrue,	nodev,
525 	dnopen,		dnclose,	nodev,		dnwrite,	/*24*/
526 	nodev,		nodev,		nodev,		0,
527 	seltrue,	nodev,
528 /* 25-29 reserved to local sites */
529 	gpibopen,	gpibclose,	gpibread,	gpibwrite,	/*25*/
530 	gpibioctl,	nulldev,	nodev,		0,
531 	seltrue,	nodev,
532 	lpaopen,	lpaclose,	lparead,	lpawrite,	/*26*/
533 	lpaioctl,	nodev,		nulldev,	0,
534 	seltrue,	nodev,
535 	psopen,		psclose,	psread,		pswrite,	/*27*/
536 	psioctl,	nodev,		psreset,	0,
537 	seltrue,	nodev,
538 	ibopen,		ibclose,	ibread,		ibwrite,	/*28*/
539 	ibioctl,	nodev,		nodev,		0,
540 	seltrue,	nodev,
541 	adopen,		adclose,	nodev,		nodev,		/*29*/
542 	adioctl,	nodev,		adreset,	0,
543 	seltrue,	nodev,
544 	rxopen,		rxclose,	rxread,		rxwrite,	/*30*/
545 	rxioctl,	nodev,		rxreset,	0,
546 	seltrue,	nodev,
547 	ikopen,		ikclose,	ikread,		ikwrite,	/*31*/
548 	ikioctl,	nodev,		ikreset,	0,
549 	seltrue,	nodev,
550 	rlopen,		rlclose,	rlread,		rlwrite,	/* 32 */
551 	rlioctl,	nodev,		rlreset,	0,
552 	seltrue,	nodev,
553 };
554 int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
555 
556 int	mem_no = 3; 	/* major device number of memory special file */
557 
558 /*
559  * Swapdev is a fake device implemented
560  * in sw.c used only internally to get to swstrategy.
561  * It cannot be provided to the users, because the
562  * swstrategy routine munches the b_dev and b_blkno entries
563  * before calling the appropriate driver.  This would horribly
564  * confuse, e.g. the hashing routines. Instead, /dev/drum is
565  * provided as a character (raw) device.
566  */
567 dev_t	swapdev = makedev(4, 0);
568