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