xref: /original-bsd/sys/vax/vax/conf.c (revision cd18b70b)
1 /*
2  * Copyright (c) 1982, 1986 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)conf.c	7.10 (Berkeley) 10/22/87
7  */
8 
9 #include "param.h"
10 #include "systm.h"
11 #include "buf.h"
12 #include "ioctl.h"
13 #include "tty.h"
14 #include "conf.h"
15 
16 int	nulldev();
17 int	nodev();
18 
19 #include "hp.h"
20 #if NHP > 0
21 int	hpopen(),hpclose(),hpstrategy();
22 int	hpread(),hpwrite(),hpioctl(),hpdump(),hpsize();
23 #else
24 #define	hpopen		nodev
25 #define	hpclose		nodev
26 #define	hpstrategy	nodev
27 #define	hpread		nodev
28 #define	hpwrite		nodev
29 #define	hpioctl		nodev
30 #define	hpdump		nodev
31 #define	hpsize		0
32 #endif
33 
34 #include "tu.h"
35 #if NHT > 0
36 int	htopen(),htclose(),htstrategy(),htread(),htwrite(),htdump(),htioctl();
37 #else
38 #define	htopen		nodev
39 #define	htclose		nodev
40 #define	htstrategy	nodev
41 #define	htread		nodev
42 #define	htwrite		nodev
43 #define	htdump		nodev
44 #define	htioctl		nodev
45 #endif
46 
47 #include "rk.h"
48 #if NHK > 0
49 int	rkopen(),rkstrategy(),rkread(),rkwrite(),rkintr();
50 int	rkdump(),rkreset(),rksize();
51 #else
52 #define	rkopen		nodev
53 #define	rkstrategy	nodev
54 #define	rkread		nodev
55 #define	rkwrite		nodev
56 #define	rkintr		nodev
57 #define	rkdump		nodev
58 #define	rkreset		nodev
59 #define	rksize		0
60 #endif
61 
62 #include "te.h"
63 #if NTE > 0
64 int	tmopen(),tmclose(),tmstrategy(),tmread(),tmwrite();
65 int	tmioctl(),tmdump(),tmreset();
66 #else
67 #define	tmopen		nodev
68 #define	tmclose		nodev
69 #define	tmstrategy	nodev
70 #define	tmread		nodev
71 #define	tmwrite		nodev
72 #define	tmioctl		nodev
73 #define	tmdump		nodev
74 #define	tmreset		nulldev
75 #endif
76 
77 #include "tms.h"
78 #if NTMS > 0
79 int	tmscpopen(),tmscpclose(),tmscpstrategy(),tmscpread(),tmscpwrite();
80 int	tmscpioctl(),tmscpdump(),tmscpreset();
81 #else
82 #define	tmscpopen	nodev
83 #define	tmscpclose	nodev
84 #define	tmscpstrategy	nodev
85 #define	tmscpread	nodev
86 #define	tmscpwrite	nodev
87 #define	tmscpioctl	nodev
88 #define	tmscpdump	nodev
89 #define	tmscpreset	nulldev
90 #endif
91 
92 #include "ts.h"
93 #if NTS > 0
94 int	tsopen(),tsclose(),tsstrategy(),tsread(),tswrite();
95 int	tsioctl(),tsdump(),tsreset();
96 #else
97 #define	tsopen		nodev
98 #define	tsclose		nodev
99 #define	tsstrategy	nodev
100 #define	tsread		nodev
101 #define	tswrite		nodev
102 #define	tsioctl		nodev
103 #define	tsdump		nodev
104 #define	tsreset		nulldev
105 #endif
106 
107 #include "mu.h"
108 #if NMT > 0
109 int	mtopen(),mtclose(),mtstrategy(),mtread(),mtwrite();
110 int	mtioctl(),mtdump();
111 #else
112 #define	mtopen		nodev
113 #define	mtclose		nodev
114 #define	mtstrategy	nodev
115 #define	mtread		nodev
116 #define	mtwrite		nodev
117 #define	mtioctl		nodev
118 #define	mtdump		nodev
119 #endif
120 
121 #include "ra.h"
122 #if NUDA > 0
123 int	udopen(),udclose(),udstrategy(),udread(),udwrite(),udioctl();
124 int	udreset(),uddump(),udsize();
125 #else
126 #define	udopen		nodev
127 #define	udclose		nodev
128 #define	udstrategy	nodev
129 #define	udread		nodev
130 #define	udwrite		nodev
131 #define	udioctl		nodev
132 #define	udreset		nulldev
133 #define	uddump		nodev
134 #define	udsize		0
135 #endif
136 
137 #include "up.h"
138 #if NSC > 0
139 int	upopen(),upstrategy(),upread(),upwrite(),upreset(),updump(),upsize();
140 #else
141 #define	upopen		nodev
142 #define	upstrategy	nodev
143 #define	upread		nodev
144 #define	upwrite		nodev
145 #define	upreset		nulldev
146 #define	updump		nodev
147 #define	upsize		0
148 #endif
149 
150 #include "tj.h"
151 #if NUT > 0
152 int	utopen(),utclose(),utstrategy(),utread(),utwrite(),utioctl();
153 int	utreset(),utdump();
154 #else
155 #define	utopen		nodev
156 #define	utclose		nodev
157 #define	utread		nodev
158 #define	utstrategy	nodev
159 #define	utwrite		nodev
160 #define	utreset		nulldev
161 #define	utioctl		nodev
162 #define	utdump		nodev
163 #endif
164 
165 #include "rb.h"
166 #if NIDC > 0
167 int	idcopen(),idcstrategy(),idcread(),idcwrite();
168 int	idcreset(),idcdump(),idcsize();;
169 #else
170 #define	idcopen		nodev
171 #define	idcstrategy	nodev
172 #define	idcread		nodev
173 #define	idcwrite	nodev
174 #define	idcreset	nulldev
175 #define	idcdump		nodev
176 #define	idcsize		0
177 #endif
178 
179 #if defined(VAX750) || defined(VAX730)
180 int	tuopen(),tuclose(),tustrategy();
181 #else
182 #define	tuopen		nodev
183 #define	tuclose		nodev
184 #define	tustrategy	nodev
185 #endif
186 
187 #include "rx.h"
188 #if NFX > 0
189 int	rxopen(),rxstrategy(),rxclose(),rxread(),rxwrite(),rxreset(),rxioctl();
190 #else
191 #define	rxopen		nodev
192 #define rxstrategy	nodev
193 #define	rxclose		nodev
194 #define	rxread		nodev
195 #define	rxwrite		nodev
196 #define	rxreset		nulldev
197 #define	rxioctl		nodev
198 #endif
199 
200 #include "uu.h"
201 #if NUU > 0
202 int	uuopen(),uustrategy(),uuclose(),uureset(),uuioctl();
203 #else
204 #define	uuopen		nodev
205 #define uustrategy	nodev
206 #define	uuclose		nodev
207 #define	uureset		nulldev
208 #define	uuioctl		nodev
209 #endif
210 
211 #include "rl.h"
212 #if NRL > 0
213 int	rlopen(),rlstrategy(),rlread(),rlwrite();
214 int	rlreset(),rldump(),rlsize();
215 #else
216 #define	rlopen		nodev
217 #define	rlstrategy	nodev
218 #define	rlread		nodev
219 #define	rlwrite		nodev
220 #define	rlreset		nulldev
221 #define	rldump		nodev
222 #define	rlsize		0
223 #endif
224 
225 #include "np.h"
226 #if NNP > 0
227 int	npopen(),npclose(),npread(),npwrite();
228 int	npreset(),npioctl();
229 #else
230 #define	npopen		nodev
231 #define	npclose		nodev
232 #define	npread		nodev
233 #define	npwrite		nodev
234 #define	npreset		nulldev
235 #define	npioctl		nodev
236 #endif
237 
238 int	swstrategy(),swread(),swwrite();
239 
240 struct bdevsw	bdevsw[] =
241 {
242 	{ hpopen,	hpclose,	hpstrategy,	hpioctl,	/*0*/
243 	  hpdump,	hpsize,		0 },
244 	{ htopen,	htclose,	htstrategy,	htioctl,	/*1*/
245 	  htdump,	0,		B_TAPE },
246 	{ upopen,	nulldev,	upstrategy,	nodev,		/*2*/
247 	  updump,	upsize,		0 },
248 	{ rkopen,	nulldev,	rkstrategy,	nodev,		/*3*/
249 	  rkdump,	rksize,		0 },
250 	{ nodev,	nodev,		swstrategy,	nodev,		/*4*/
251 	  nodev,	0,		0 },
252 	{ tmopen,	tmclose,	tmstrategy,	tmioctl,	/*5*/
253 	  tmdump,	0,		B_TAPE },
254 	{ tsopen,	tsclose,	tsstrategy,	tsioctl,	/*6*/
255 	  tsdump,	0,		B_TAPE },
256 	{ mtopen,	mtclose,	mtstrategy,	mtioctl,	/*7*/
257 	  mtdump,	0,		B_TAPE },
258 	{ tuopen,	tuclose,	tustrategy,	nodev,		/*8*/
259 	  nodev,	0,		B_TAPE },
260 	{ udopen,	udclose,	udstrategy,	udioctl,	/*9*/
261 	  uddump,	udsize,		0 },
262 	{ utopen,	utclose,	utstrategy,	utioctl,	/*10*/
263 	  utdump,	0,		B_TAPE },
264 	{ idcopen,	nodev,		idcstrategy,	nodev,		/*11*/
265 	  idcdump,	idcsize,	0 },
266 	{ rxopen,	rxclose,	rxstrategy,	nodev,		/*12*/
267 	  nodev,	0,		0 },
268 	{ uuopen,	uuclose,	uustrategy,	nodev,		/*13*/
269 	  nodev,	0,		0 },
270 	{ rlopen,	nodev,		rlstrategy,	nodev,		/*14*/
271 	  rldump,	rlsize,		0 },
272 	{ tmscpopen,	tmscpclose,	tmscpstrategy,	tmscpioctl,	/*15*/
273 	  tmscpdump,	0,		B_TAPE },
274 };
275 int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
276 
277 int	cnopen(),cnclose(),cnread(),cnwrite(),cnioctl();
278 struct tty cons;
279 
280 #include "acc.h"
281 #if NACC > 0
282 int     accreset();
283 #else
284 #define accreset nulldev
285 #endif
286 
287 #include "ct.h"
288 #if NCT > 0
289 int	ctopen(),ctclose(),ctwrite();
290 #else
291 #define	ctopen	nulldev
292 #define	ctclose	nulldev
293 #define	ctwrite	nulldev
294 #endif
295 
296 #include "dh.h"
297 #if NDH == 0
298 #define	dhopen	nodev
299 #define	dhclose	nodev
300 #define	dhread	nodev
301 #define	dhwrite	nodev
302 #define	dhioctl	nodev
303 #define	dhstop	nodev
304 #define	dhreset	nulldev
305 #define	dh11	0
306 #else
307 int	dhopen(),dhclose(),dhread(),dhwrite(),dhioctl(),dhstop(),dhreset();
308 struct	tty dh11[];
309 #endif
310 
311 #include "dmf.h"
312 #if NDMF == 0
313 #define	dmfopen	nodev
314 #define	dmfclose	nodev
315 #define	dmfread	nodev
316 #define	dmfwrite	nodev
317 #define	dmfioctl	nodev
318 #define	dmfstop	nodev
319 #define	dmfreset	nulldev
320 #define	dmf_tty	0
321 #else
322 int	dmfopen(),dmfclose(),dmfread(),dmfwrite(),dmfioctl(),dmfstop(),dmfreset();
323 struct	tty dmf_tty[];
324 #endif
325 
326 #if VAX8600
327 int	crlopen(),crlclose(),crlread(),crlwrite();
328 #else
329 #define	crlopen		nodev
330 #define	crlclose	nodev
331 #define	crlread		nodev
332 #define	crlwrite	nodev
333 #endif
334 
335 #if VAX780
336 int	flopen(),flclose(),flread(),flwrite();
337 #else
338 #define	flopen	nodev
339 #define	flclose	nodev
340 #define	flread	nodev
341 #define	flwrite	nodev
342 #endif
343 
344 #include "dz.h"
345 #if NDZ == 0
346 #define	dzopen	nodev
347 #define	dzclose	nodev
348 #define	dzread	nodev
349 #define	dzwrite	nodev
350 #define	dzioctl	nodev
351 #define	dzstop	nodev
352 #define	dzreset	nulldev
353 #define	dz_tty	0
354 #else
355 int	dzopen(),dzclose(),dzread(),dzwrite(),dzioctl(),dzstop(),dzreset();
356 struct	tty dz_tty[];
357 #endif
358 
359 #include "lp.h"
360 #if NLP > 0
361 int	lpopen(),lpclose(),lpwrite(),lpreset();
362 #else
363 #define	lpopen		nodev
364 #define	lpclose		nodev
365 #define	lpwrite		nodev
366 #define	lpreset		nulldev
367 #endif
368 
369 int	syopen(),syread(),sywrite(),syioctl(),syselect();
370 
371 int 	mmread(),mmwrite();
372 #define	mmselect	seltrue
373 
374 #include "va.h"
375 #if NVA > 0
376 int	vaopen(),vaclose(),vawrite(),vaioctl(),vareset(),vaselect();
377 #else
378 #define	vaopen		nodev
379 #define	vaclose		nodev
380 #define	vawrite		nodev
381 #define	vaopen		nodev
382 #define	vaioctl		nodev
383 #define	vareset		nulldev
384 #define	vaselect	nodev
385 #endif
386 
387 #include "vp.h"
388 #if NVP > 0
389 int	vpopen(),vpclose(),vpwrite(),vpioctl(),vpreset(),vpselect();
390 #else
391 #define	vpopen		nodev
392 #define	vpclose		nodev
393 #define	vpwrite		nodev
394 #define	vpioctl		nodev
395 #define	vpreset		nulldev
396 #define	vpselect	nodev
397 #endif
398 
399 #include "pty.h"
400 #if NPTY > 0
401 int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();
402 int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();
403 int	ptyioctl();
404 struct	tty pt_tty[];
405 #else
406 #define ptsopen		nodev
407 #define ptsclose	nodev
408 #define ptsread		nodev
409 #define ptswrite	nodev
410 #define ptcopen		nodev
411 #define ptcclose	nodev
412 #define ptcread		nodev
413 #define ptcwrite	nodev
414 #define ptyioctl	nodev
415 #define	pt_tty		0
416 #define	ptcselect	nodev
417 #define	ptsstop		nulldev
418 #endif
419 
420 #include "lpa.h"
421 #if NLPA > 0
422 int	lpaopen(),lpaclose(),lparead(),lpawrite(),lpaioctl();
423 #else
424 #define	lpaopen		nodev
425 #define	lpaclose	nodev
426 #define	lparead		nodev
427 #define	lpawrite	nodev
428 #define	lpaioctl	nodev
429 #endif
430 
431 #include "dn.h"
432 #if NDN > 0
433 int	dnopen(),dnclose(),dnwrite();
434 #else
435 #define	dnopen		nodev
436 #define	dnclose		nodev
437 #define	dnwrite		nodev
438 #endif
439 
440 #include "ik.h"
441 #if NIK > 0
442 int	ikopen(),ikclose(),ikread(),ikwrite(),ikioctl(),ikreset();
443 #else
444 #define ikopen nodev
445 #define ikclose nodev
446 #define ikread nodev
447 #define ikwrite nodev
448 #define ikioctl nodev
449 #define ikreset nulldev
450 #endif
451 
452 #include "ps.h"
453 #if NPS > 0
454 int	psopen(),psclose(),psread(),pswrite(),psioctl(),psreset();
455 #else
456 #define psopen nodev
457 #define psclose nodev
458 #define psread nodev
459 #define pswrite nodev
460 #define psopen nodev
461 #define psioctl nodev
462 #define psreset nulldev
463 #endif
464 
465 #include "ad.h"
466 #if NAD > 0
467 int	adopen(),adclose(),adioctl(),adreset();
468 #else
469 #define adopen nodev
470 #define adclose nodev
471 #define adioctl nodev
472 #define adreset nulldev
473 #endif
474 
475 int	logopen(),logclose(),logread(),logioctl(),logselect();
476 
477 #include "dhu.h"
478 #if NDHU > 0
479 int dhuopen(),dhuclose(),dhuread(),dhuwrite(),dhuioctl(),dhustop(),dhureset();
480 struct tty dhu_tty[];
481 #else
482 #define dhuopen nodev
483 #define dhuclose nodev
484 #define dhuread nodev
485 #define dhuwrite nodev
486 #define dhuioctl nodev
487 #define dhustop nodev
488 #define dhureset nulldev
489 #define dhu_tty 0
490 #endif
491 
492 #include "vs.h"
493 #if NVS > 0
494 int	vsopen(),vsclose(),vsioctl(),vsreset(),vsselect();
495 #else
496 #define vsopen nodev
497 #define vsclose nodev
498 #define vsioctl nodev
499 #define vsreset nodev
500 #define vsselect nodev
501 #endif
502 
503 #include "dmz.h"
504 #if NDMZ > 0
505 int dmzopen(),dmzclose(),dmzread(),dmzwrite(),dmzioctl(),dmzstop(),dmzreset();
506 struct tty dmz_tty[];
507 #else
508 #define dmzopen nodev
509 #define dmzclose nodev
510 #define dmzread nodev
511 #define dmzwrite nodev
512 #define dmzioctl nodev
513 #define dmzstop nodev
514 #define dmzreset nulldev
515 #define dmz_tty 0
516 #endif
517 
518 #include "qv.h"
519 #if NQV > 0
520 int	qvopen(), qvclose(), qvread(), qvwrite(), qvioctl(), qvstop(),
521 	qvreset(), qvselect(), qvcons_init();
522 #else
523 #define qvopen	nodev
524 #define qvclose	nodev
525 #define qvread	nodev
526 #define qvwrite	nodev
527 #define qvioctl	nodev
528 #define qvstop	nodev
529 #define qvreset	nulldev
530 #define qvselect	nodev
531 #define qvcons_init	nodev
532 #endif
533 
534 #include "qd.h"
535 #if NQD > 0
536 int	qdopen(), qdclose(), qdread(), qdwrite(), qdioctl(), qdstop(),
537 	qdreset(), qdselect(), qdcons_init();
538 #else
539 #define qdopen	nodev
540 #define qdclose	nodev
541 #define qdread	nodev
542 #define qdwrite	nodev
543 #define qdioctl	nodev
544 #define qdstop	nodev
545 #define qdreset	nulldev
546 #define qdselect	nodev
547 #define qdcons_init	nodev
548 #endif
549 
550 #if defined(INGRES)
551 int	iiioctl(), iiclose(), iiopen();
552 #else
553 #define iiopen nodev
554 #define iiclose nodev
555 #define iiioctl nodev
556 #endif
557 
558 #ifdef	DATAKIT
559 #include "datakit.h"
560 #include "dktty.h"
561 #include "kmc.h"
562 #endif
563 
564 #if !defined(NDATAKIT) || NDATAKIT == 0
565 #define	dkopen	nodev
566 #define	dkclose	nodev
567 #define	dkread	nodev
568 #define	dkwrite	nodev
569 #define	dkioctl	nodev
570 #else
571 int	dkopen(),dkclose(),dkread(),dkwrite(),dkioctl();
572 #endif
573 
574 #if !defined(NDKTTY) || NDKTTY == 0
575 #define	dktopen		nodev
576 #define	dktclose	nodev
577 #define	dktread		nodev
578 #define	dktwrite	nodev
579 #define	dktioctl	nodev
580 #define	dktstop		nulldev
581 #define	dkt		0
582 #else
583 int	dktopen(),dktclose(),dktread(),dktwrite(),dktioctl(), dktstop();
584 struct tty dkt[];
585 #endif
586 
587 #if NKMC > 0
588 int kmcopen(), kmcclose(), kmcwrite(), kmcioctl(), kmcread();
589 int kmcrint(), kmcload(), kmcset(), kmcdclr();
590 #else
591 #define kmcopen nodev
592 #define kmcclose nodev
593 #define kmcwrite nodev
594 #define kmcioctl nodev
595 #define kmcread nodev
596 #define kmcdclr nodev
597 #endif
598 
599 int	ttselect(), seltrue();
600 
601 struct cdevsw	cdevsw[] =
602 {
603 	cnopen,		cnclose,	cnread,		cnwrite,	/*0*/
604 	cnioctl,	nulldev,	nulldev,	&cons,
605 	ttselect,	nodev,
606 	dzopen,		dzclose,	dzread,		dzwrite,	/*1*/
607 	dzioctl,	dzstop,		dzreset,	dz_tty,
608 	ttselect,	nodev,
609 	syopen,		nulldev,	syread,		sywrite,	/*2*/
610 	syioctl,	nulldev,	nulldev,	0,
611 	syselect,	nodev,
612 	nulldev,	nulldev,	mmread,		mmwrite,	/*3*/
613 	nodev,		nulldev,	nulldev,	0,
614 	mmselect,	nodev,
615 	hpopen,		hpclose,	hpread,		hpwrite,	/*4*/
616 	hpioctl,	nodev,		nulldev,	0,
617 	seltrue,	nodev,
618 	htopen,		htclose,	htread,		htwrite,	/*5*/
619 	htioctl,	nodev,		nulldev,	0,
620 	seltrue,	nodev,
621 	vpopen,		vpclose,	nodev,		vpwrite,	/*6*/
622 	vpioctl,	nulldev,	vpreset,	0,
623 	vpselect,	nodev,
624 	nulldev,	nulldev,	swread,		swwrite,	/*7*/
625 	nodev,		nodev,		nulldev,	0,
626 	nodev,		nodev,
627 	flopen,		flclose,	flread,		flwrite,	/*8*/
628 	nodev,		nodev,		nulldev,	0,
629 	seltrue,	nodev,
630 	udopen,		udclose,	udread,		udwrite,	/*9*/
631 	udioctl,	nodev,		udreset,	0,
632 	seltrue,	nodev,
633 	vaopen,		vaclose,	nodev,		vawrite,	/*10*/
634 	vaioctl,	nulldev,	vareset,	0,
635 	vaselect,	nodev,
636 	rkopen,		nulldev,	rkread,		rkwrite,	/*11*/
637 	nodev,		nodev,		rkreset,	0,
638 	seltrue,	nodev,
639 	dhopen,		dhclose,	dhread,		dhwrite,	/*12*/
640 	dhioctl,	dhstop,		dhreset,	dh11,
641 	ttselect,	nodev,
642 	upopen,		nulldev,	upread,		upwrite,	/*13*/
643 	nodev,		nodev,		upreset,	0,
644 	seltrue,	nodev,
645 	tmopen,		tmclose,	tmread,		tmwrite,	/*14*/
646 	tmioctl,	nodev,		tmreset,	0,
647 	seltrue,	nodev,
648 	lpopen,		lpclose,	nodev,		lpwrite,	/*15*/
649 	nodev,		nodev,		lpreset,	0,
650 	seltrue,	nodev,
651 	tsopen,		tsclose,	tsread,		tswrite,	/*16*/
652 	tsioctl,	nodev,		tsreset,	0,
653 	seltrue,	nodev,
654 	utopen,		utclose,	utread,		utwrite,	/*17*/
655 	utioctl,	nodev,		utreset,	0,
656 	seltrue,	nodev,
657 	ctopen,		ctclose,	nodev,		ctwrite,	/*18*/
658 	nodev,		nodev,		nulldev,	0,
659 	seltrue,	nodev,
660 	mtopen,		mtclose,	mtread,		mtwrite,	/*19*/
661 	mtioctl,	nodev,		nodev,		0,
662 	seltrue,	nodev,
663 	ptsopen,	ptsclose,	ptsread,	ptswrite,	/*20*/
664 	ptyioctl,	ptsstop,	nulldev,	pt_tty,
665 	ttselect,	nodev,
666 	ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*21*/
667 	ptyioctl,	nulldev,	nulldev,	pt_tty,
668 	ptcselect,	nodev,
669 	dmfopen,	dmfclose,	dmfread,	dmfwrite,	/*22*/
670 	dmfioctl,	dmfstop,	dmfreset,	dmf_tty,
671 	ttselect,	nodev,
672 	idcopen,	nulldev,	idcread,	idcwrite,	/*23*/
673 	nodev,		nodev,		idcreset,	0,
674 	seltrue,	nodev,
675 	dnopen,		dnclose,	nodev,		dnwrite,	/*24*/
676 	nodev,		nodev,		nulldev,	0,
677 	seltrue,	nodev,
678 /* 25-29 reserved to local sites */
679 	nodev,		nodev,		nodev,		nodev,		/*25*/
680 	nodev,		nulldev,	nulldev,	0,
681 	nodev,		nodev,
682 	lpaopen,	lpaclose,	lparead,	lpawrite,	/*26*/
683 	lpaioctl,	nodev,		nulldev,	0,
684 	seltrue,	nodev,
685 	psopen,		psclose,	psread,		pswrite,	/*27*/
686 	psioctl,	nodev,		psreset,	0,
687 	seltrue,	nodev,
688 	nodev,		nodev,		nodev,		nodev,		/*28*/
689 	nodev,		nulldev,	nulldev,	0,
690 	nodev,		nodev,
691 	adopen,		adclose,	nodev,		nodev,		/*29*/
692 	adioctl,	nodev,		adreset,	0,
693 	seltrue,	nodev,
694 	rxopen,		rxclose,	rxread,		rxwrite,	/*30*/
695 	rxioctl,	nodev,		rxreset,	0,
696 	seltrue,	nodev,
697 	ikopen,		ikclose,	ikread,		ikwrite,	/*31*/
698 	ikioctl,	nodev,		ikreset,	0,
699 	seltrue,	nodev,
700 	rlopen,		nodev,		rlread,		rlwrite,	/*32*/
701 	nodev,		nodev,		rlreset,	0,
702 	seltrue,	nodev,
703 	logopen,	logclose,	logread,	nodev,		/*33*/
704 	logioctl,	nodev,		nulldev,	0,
705 	logselect,	nodev,
706 	dhuopen,        dhuclose,       dhuread,        dhuwrite,       /*34*/
707 	dhuioctl,       dhustop,        dhureset,       dhu_tty,
708 	ttselect,       nodev,
709  	crlopen,	crlclose,	crlread,	crlwrite,	/*35*/
710  	nodev,		nodev,		nulldev,	0,
711  	seltrue,	nodev,
712 	vsopen,		vsclose,	nodev,		nodev,		/*36*/
713 	vsioctl,	nodev,		vsreset,	0,
714 	vsselect,	nodev,
715 	dmzopen,        dmzclose,       dmzread,        dmzwrite,       /*37*/
716 	dmzioctl,       dmzstop,        dmzreset,       dmz_tty,
717 	ttselect,       nodev,
718 	tmscpopen,	tmscpclose,	tmscpread,	tmscpwrite,	/*38*/
719 	tmscpioctl,	nodev,		tmscpreset,	0,
720 	seltrue,	nodev,
721 	npopen,		npclose,	npread,		npwrite,	/*39*/
722 	npioctl,	nodev,		npreset,	0,
723 	seltrue,	nodev,
724 	qvopen,		qvclose,	qvread, 	qvwrite,	/*40*/
725 	qvioctl,	qvstop,		qvreset,	0,
726 	qvselect,	nodev,
727 	qdopen,		qdclose,	qdread, 	qdwrite,	/*41*/
728 	qdioctl,	qdstop,		qdreset,	0,
729 	qdselect,	nodev,
730 /* 42-50 reserved to local sites */
731 	nodev,		nodev,		nodev,		nodev,		/*42*/
732 	nodev,		nulldev,	nulldev,	0,
733 	nodev,		nodev,
734 	iiopen,		iiclose,	nulldev,	nulldev,	/*43*/
735 	iiioctl,	nulldev,	nulldev,	0,
736 	seltrue,	nodev,
737 	/* Datakit major devices */
738 	dkopen, 	dkclose,	dkread, 	dkwrite,	/* 44*/
739 	dkioctl,	nulldev,	nulldev,	0,
740 	seltrue,	nodev,
741 	dktopen, 	dktclose,	dktread, 	dktwrite,	/* 45*/
742 	dktioctl,	dktstop,	nulldev,	dkt,
743 	ttselect,	nodev,
744 	kmcopen,	kmcclose,	kmcread,	kmcwrite,	/* 46*/
745 	kmcioctl,	nulldev,	kmcdclr,	0,
746 	seltrue,	nodev,
747 };
748 int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
749 
750 int	mem_no = 3; 	/* major device number of memory special file */
751 
752 /*
753  * Swapdev is a fake device implemented
754  * in sw.c used only internally to get to swstrategy.
755  * It cannot be provided to the users, because the
756  * swstrategy routine munches the b_dev and b_blkno entries
757  * before calling the appropriate driver.  This would horribly
758  * confuse, e.g. the hashing routines. Instead, /dev/drum is
759  * provided as a character (raw) device.
760  */
761 dev_t	swapdev = makedev(4, 0);
762