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