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