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