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