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