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