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.16 (Berkeley) 12/16/90 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 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(),crlrw(); 305 #else 306 #define crlopen nodev 307 #define crlclose nodev 308 #define crlrw nodev 309 #endif 310 311 #if VAX8200 312 int rx50open(),rx50close(),rx50rw(); 313 #else 314 #define rx50open nodev 315 #define rx50close nodev 316 #define rx50rw nodev 317 #endif 318 319 #if VAX780 320 int flopen(),flclose(),flrw(); 321 #else 322 #define flopen nodev 323 #define flclose nodev 324 #define flrw nodev 325 #endif 326 327 #include "dz.h" 328 #if NDZ == 0 329 #define dzopen nodev 330 #define dzclose nodev 331 #define dzread nodev 332 #define dzwrite nodev 333 #define dzioctl nodev 334 #define dzstop nodev 335 #define dzreset nulldev 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 nodev 347 #define lpclose nodev 348 #define lpwrite nodev 349 #define lpreset nulldev 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 nodev 362 #define vaclose nodev 363 #define vawrite nodev 364 #define vaopen nodev 365 #define vaioctl nodev 366 #define vareset nulldev 367 #define vaselect nodev 368 #endif 369 370 #include "vp.h" 371 #if NVP > 0 372 int vpopen(),vpclose(),vpwrite(),vpioctl(),vpreset(),vpselect(); 373 #else 374 #define vpopen nodev 375 #define vpclose nodev 376 #define vpwrite nodev 377 #define vpioctl nodev 378 #define vpreset nulldev 379 #define vpselect nodev 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 nodev 390 #define ptsclose nodev 391 #define ptsread nodev 392 #define ptswrite nodev 393 #define ptcopen nodev 394 #define ptcclose nodev 395 #define ptcread nodev 396 #define ptcwrite nodev 397 #define ptyioctl nodev 398 #define pt_tty 0 399 #define ptcselect nodev 400 #define ptsstop nulldev 401 #endif 402 403 #include "lpa.h" 404 #if NLPA > 0 405 int lpaopen(),lpaclose(),lparead(),lpawrite(),lpaioctl(); 406 #else 407 #define lpaopen nodev 408 #define lpaclose nodev 409 #define lparead nodev 410 #define lpawrite nodev 411 #define lpaioctl nodev 412 #endif 413 414 #include "dn.h" 415 #if NDN > 0 416 int dnopen(),dnclose(),dnwrite(); 417 #else 418 #define dnopen nodev 419 #define dnclose nodev 420 #define dnwrite nodev 421 #endif 422 423 #include "ik.h" 424 #if NIK > 0 425 int ikopen(),ikclose(),ikread(),ikwrite(),ikioctl(),ikreset(); 426 #else 427 #define ikopen nodev 428 #define ikclose nodev 429 #define ikread nodev 430 #define ikwrite nodev 431 #define ikioctl nodev 432 #define ikreset nulldev 433 #endif 434 435 #include "ps.h" 436 #if NPS > 0 437 int psopen(),psclose(),psread(),pswrite(),psioctl(),psreset(); 438 #else 439 #define psopen nodev 440 #define psclose nodev 441 #define psread nodev 442 #define pswrite nodev 443 #define psopen nodev 444 #define psioctl nodev 445 #define psreset nulldev 446 #endif 447 448 #include "ad.h" 449 #if NAD > 0 450 int adopen(),adclose(),adioctl(),adreset(); 451 #else 452 #define adopen nodev 453 #define adclose nodev 454 #define adioctl nodev 455 #define adreset nulldev 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 nodev 464 #define dhuclose nodev 465 #define dhuread nodev 466 #define dhuwrite nodev 467 #define dhuioctl nodev 468 #define dhustop nodev 469 #define dhureset nulldev 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 nodev 478 #define vsclose nodev 479 #define vsioctl nodev 480 #define vsreset nodev 481 #define vsselect nodev 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 nodev 490 #define dmzclose nodev 491 #define dmzread nodev 492 #define dmzwrite nodev 493 #define dmzioctl nodev 494 #define dmzstop nodev 495 #define dmzreset nulldev 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 nodev 505 #define qvclose nodev 506 #define qvread nodev 507 #define qvwrite nodev 508 #define qvioctl nodev 509 #define qvstop nodev 510 #define qvreset nulldev 511 #define qvselect nodev 512 #define qvcons_init nodev 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 nodev 521 #define qdclose nodev 522 #define qdread nodev 523 #define qdwrite nodev 524 #define qdioctl nodev 525 #define qdstop nodev 526 #define qdreset nulldev 527 #define qdselect nodev 528 #define qdcons_init nodev 529 #endif 530 531 #if defined(INGRES) 532 int iiioctl(), iiclose(), iiopen(); 533 #else 534 #define iiopen nodev 535 #define iiclose nodev 536 #define iiioctl nodev 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 nodev 547 #define dkclose nodev 548 #define dkread nodev 549 #define dkwrite nodev 550 #define dkioctl nodev 551 #else 552 int dkopen(),dkclose(),dkread(),dkwrite(),dkioctl(); 553 #endif 554 555 #if !defined(NDKTTY) || NDKTTY == 0 556 #define dktopen nodev 557 #define dktclose nodev 558 #define dktread nodev 559 #define dktwrite nodev 560 #define dktioctl nodev 561 #define dktstop nulldev 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 nodev 573 #define kmcclose nodev 574 #define kmcwrite nodev 575 #define kmcioctl nodev 576 #define kmcread nodev 577 #define kmcdclr nodev 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, nulldev, nulldev, &cons, 590 ttselect, nodev, NULL, 591 dzopen, dzclose, dzread, dzwrite, /*1*/ 592 dzioctl, dzstop, dzreset, dz_tty, 593 ttselect, nodev, NULL, 594 syopen, nulldev, syread, sywrite, /*2*/ 595 syioctl, nulldev, nulldev, NULL, 596 syselect, nodev, NULL, 597 nulldev, nulldev, mmrw, mmrw, /*3*/ 598 nodev, nulldev, nulldev, NULL, 599 mmselect, nodev, NULL, 600 hpopen, hpclose, rawread, rawwrite, /*4*/ 601 hpioctl, nodev, nulldev, NULL, 602 seltrue, nodev, hpstrategy, 603 htopen, htclose, rawread, rawwrite, /*5*/ 604 htioctl, nodev, nulldev, NULL, 605 seltrue, nodev, htstrategy, 606 vpopen, vpclose, nodev, vpwrite, /*6*/ 607 vpioctl, nulldev, vpreset, NULL, 608 vpselect, nodev, NULL, 609 nulldev, nulldev, rawread, rawwrite, /*7*/ 610 nodev, nodev, nulldev, NULL, 611 nodev, nodev, swstrategy, 612 flopen, flclose, flrw, flrw, /*8*/ 613 nodev, nodev, nulldev, NULL, 614 seltrue, nodev, NULL, 615 udaopen, udaclose, rawread, rawwrite, /*9*/ 616 udaioctl, nodev, udareset, NULL, 617 seltrue, nodev, udastrategy, 618 vaopen, vaclose, nodev, vawrite, /*10*/ 619 vaioctl, nulldev, vareset, NULL, 620 vaselect, nodev, NULL, 621 rkopen, nulldev, rawread, rawwrite, /*11*/ 622 nodev, nodev, rkreset, NULL, 623 seltrue, nodev, rkstrategy, 624 dhopen, dhclose, dhread, dhwrite, /*12*/ 625 dhioctl, dhstop, dhreset, dh11, 626 ttselect, nodev, NULL, 627 upopen, nulldev, rawread, rawwrite, /*13*/ 628 nodev, nodev, upreset, NULL, 629 seltrue, nodev, upstrategy, 630 tmopen, tmclose, rawread, rawwrite, /*14*/ 631 tmioctl, nodev, tmreset, NULL, 632 seltrue, nodev, tmstrategy, 633 lpopen, lpclose, nodev, lpwrite, /*15*/ 634 nodev, nodev, lpreset, NULL, 635 seltrue, nodev, NULL, 636 tsopen, tsclose, rawread, rawwrite, /*16*/ 637 tsioctl, nodev, tsreset, NULL, 638 seltrue, nodev, tsstrategy, 639 utopen, utclose, rawread, rawwrite, /*17*/ 640 utioctl, nodev, utreset, NULL, 641 seltrue, nodev, utstrategy, 642 ctopen, ctclose, nodev, ctwrite, /*18*/ 643 nodev, nodev, nulldev, NULL, 644 seltrue, nodev, NULL, 645 mtopen, mtclose, rawread, rawwrite, /*19*/ 646 mtioctl, nodev, nodev, NULL, 647 seltrue, nodev, mtstrategy, 648 ptsopen, ptsclose, ptsread, ptswrite, /*20*/ 649 ptyioctl, ptsstop, nulldev, pt_tty, 650 ttselect, nodev, NULL, 651 ptcopen, ptcclose, ptcread, ptcwrite, /*21*/ 652 ptyioctl, nulldev, nulldev, pt_tty, 653 ptcselect, nodev, NULL, 654 dmfopen, dmfclose, dmfread, dmfwrite, /*22*/ 655 dmfioctl, dmfstop, dmfreset, dmf_tty, 656 ttselect, nodev, NULL, 657 idcopen, nulldev, rawread, rawwrite, /*23*/ 658 nodev, nodev, idcreset, NULL, 659 seltrue, nodev, idcstrategy, 660 dnopen, dnclose, nodev, dnwrite, /*24*/ 661 nodev, nodev, nulldev, NULL, 662 seltrue, nodev, NULL, 663 /* 25-29 reserved to local sites */ 664 nodev, nodev, nodev, nodev, /*25*/ 665 nodev, nulldev, nulldev, NULL, 666 nodev, nodev, NULL, 667 lpaopen, lpaclose, lparead, lpawrite, /*26*/ 668 lpaioctl, nodev, nulldev, NULL, 669 seltrue, nodev, NULL, 670 psopen, psclose, psread, pswrite, /*27*/ 671 psioctl, nodev, psreset, NULL, 672 seltrue, nodev, NULL, 673 nodev, nodev, nodev, nodev, /*28*/ 674 nodev, nulldev, nulldev, NULL, 675 nodev, nodev, NULL, 676 adopen, adclose, nodev, nodev, /*29*/ 677 adioctl, nodev, adreset, NULL, 678 seltrue, nodev, NULL, 679 rxopen, rxclose, rxread, rxwrite, /*30*/ 680 rxioctl, nodev, rxreset, NULL, 681 seltrue, nodev, NULL, 682 ikopen, ikclose, ikread, ikwrite, /*31*/ 683 ikioctl, nodev, ikreset, NULL, 684 seltrue, nodev, NULL, 685 rlopen, nodev, rawread, rawwrite, /*32*/ 686 nodev, nodev, rlreset, NULL, 687 seltrue, nodev, rlstrategy, 688 logopen, logclose, logread, nodev, /*33*/ 689 logioctl, nodev, nulldev, NULL, 690 logselect, nodev, NULL, 691 dhuopen, dhuclose, dhuread, dhuwrite, /*34*/ 692 dhuioctl, dhustop, dhureset, dhu_tty, 693 ttselect, nodev, NULL, 694 crlopen, crlclose, crlrw, crlrw, /*35*/ 695 nodev, nodev, nulldev, NULL, 696 seltrue, nodev, NULL, 697 vsopen, vsclose, nodev, nodev, /*36*/ 698 vsioctl, nodev, vsreset, NULL, 699 vsselect, nodev, NULL, 700 dmzopen, dmzclose, dmzread, dmzwrite, /*37*/ 701 dmzioctl, dmzstop, dmzreset, dmz_tty, 702 ttselect, nodev, NULL, 703 tmscpopen, tmscpclose, rawread, rawwrite, /*38*/ 704 tmscpioctl, nodev, tmscpreset, NULL, 705 seltrue, nodev, tmscpstrategy, 706 npopen, npclose, npread, npwrite, /*39*/ 707 npioctl, nodev, npreset, NULL, 708 seltrue, nodev, NULL, 709 qvopen, qvclose, qvread, qvwrite, /*40*/ 710 qvioctl, qvstop, qvreset, NULL, 711 qvselect, nodev, NULL, 712 qdopen, qdclose, qdread, qdwrite, /*41*/ 713 qdioctl, qdstop, qdreset, NULL, 714 qdselect, nodev, NULL, 715 /* 42-50 reserved to local sites */ 716 nodev, nodev, nodev, nodev, /*42*/ 717 nodev, nulldev, nulldev, NULL, 718 nodev, nodev, NULL, 719 iiopen, iiclose, nulldev, nulldev, /*43*/ 720 iiioctl, nulldev, nulldev, NULL, 721 seltrue, nodev, NULL, 722 dkopen, dkclose, dkread, dkwrite, /*44*/ 723 dkioctl, nulldev, nulldev, NULL, 724 seltrue, nodev, NULL, 725 dktopen, dktclose, dktread, dktwrite, /*45*/ 726 dktioctl, dktstop, nulldev, dkt, 727 ttselect, nodev, NULL, 728 kmcopen, kmcclose, kmcread, kmcwrite, /*46*/ 729 kmcioctl, nulldev, kmcdclr, NULL, 730 seltrue, nodev, NULL, 731 nodev, nodev, nodev, nodev, /*47*/ 732 nodev, nulldev, nulldev, NULL, 733 nodev, nodev, NULL, 734 nodev, nodev, nodev, nodev, /*48*/ 735 nodev, nulldev, nulldev, NULL, 736 nodev, nodev, NULL, 737 nodev, nodev, nodev, nodev, /*49*/ 738 nodev, nulldev, nulldev, NULL, 739 nodev, nodev, NULL, 740 nodev, nodev, nodev, nodev, /*50*/ 741 nodev, nulldev, nulldev, NULL, 742 nodev, nodev, NULL, 743 rx50open, rx50close, rx50rw, rx50rw, /*51*/ 744 nodev, nodev, nulldev, 0, 745 seltrue, nodev, NULL, 746 /* kdb50 ra */ 747 kdbopen, nulldev/*XXX*/, rawread, rawwrite, /*52*/ 748 nodev, nodev, nulldev, 0, 749 seltrue, nodev, kdbstrategy, 750 fdopen, nodev, nodev, nodev, /*53*/ 751 nodev, nodev, nodev, NULL, 752 nodev, nodev, 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