1 /* conf.c 4.71 83/06/24 */ 2 3 #include "../h/param.h" 4 #include "../h/systm.h" 5 #include "../h/buf.h" 6 #include "../h/tty.h" 7 #include "../h/conf.h" 8 9 int nulldev(); 10 int nodev(); 11 12 #include "hp.h" 13 #if NHP > 0 14 int hpopen(),hpstrategy(),hpread(),hpwrite(),hpdump(),hpioctl(),hpsize(); 15 #else 16 #define hpopen nodev 17 #define hpstrategy nodev 18 #define hpread nodev 19 #define hpwrite nodev 20 #define hpdump nodev 21 #define hpioctl nodev 22 #define hpsize 0 23 #endif 24 25 #include "tu.h" 26 #if NHT > 0 27 int htopen(),htclose(),htstrategy(),htread(),htwrite(),htdump(),htioctl(); 28 #else 29 #define htopen nodev 30 #define htclose nodev 31 #define htstrategy nodev 32 #define htread nodev 33 #define htwrite nodev 34 #define htdump nodev 35 #define htioctl nodev 36 #endif 37 38 #include "rk.h" 39 #if NHK > 0 40 int rkopen(),rkstrategy(),rkread(),rkwrite(),rkintr(); 41 int rkdump(),rkreset(),rksize(); 42 #else 43 #define rkopen nodev 44 #define rkstrategy nodev 45 #define rkread nodev 46 #define rkwrite 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(),tmread(),tmwrite(); 56 int tmioctl(),tmdump(),tmreset(); 57 #else 58 #define tmopen nodev 59 #define tmclose nodev 60 #define tmstrategy nodev 61 #define tmread nodev 62 #define tmwrite nodev 63 #define tmioctl nodev 64 #define tmdump nodev 65 #define tmreset nodev 66 #endif 67 68 #include "ts.h" 69 #if NTS > 0 70 int tsopen(),tsclose(),tsstrategy(),tsread(),tswrite(); 71 int tsioctl(),tsdump(),tsreset(); 72 #else 73 #define tsopen nodev 74 #define tsclose nodev 75 #define tsstrategy nodev 76 #define tsread nodev 77 #define tswrite nodev 78 #define tsioctl nodev 79 #define tsdump nodev 80 #define tsreset nodev 81 #endif 82 83 #include "mu.h" 84 #if NMT > 0 85 int mtopen(),mtclose(),mtstrategy(),mtread(),mtwrite(); 86 int mtioctl(),mtdump(); 87 #else 88 #define mtopen nodev 89 #define mtclose nodev 90 #define mtstrategy nodev 91 #define mtread nodev 92 #define mtwrite nodev 93 #define mtioctl nodev 94 #define mtdump nodev 95 #endif 96 97 #include "ra.h" 98 #if NUDA > 0 99 int udopen(),udstrategy(),udread(),udwrite(),udreset(),uddump(),udsize(); 100 #else 101 #define udopen nodev 102 #define udstrategy nodev 103 #define udread nodev 104 #define udwrite nodev 105 #define udreset nulldev 106 #define uddump nodev 107 #define udsize 0 108 #endif 109 110 #include "up.h" 111 #if NSC > 0 112 int upopen(),upstrategy(),upread(),upwrite(),upreset(),updump(),upsize(); 113 #else 114 #define upopen nodev 115 #define upstrategy nodev 116 #define upread nodev 117 #define upwrite nodev 118 #define upreset nulldev 119 #define updump nodev 120 #define upsize 0 121 #endif 122 123 #include "tj.h" 124 #if NUT > 0 125 int utopen(),utclose(),utstrategy(),utread(),utwrite(),utioctl(); 126 int utreset(),utdump(); 127 #else 128 #define utopen nodev 129 #define utclose nodev 130 #define utread nodev 131 #define utstrategy nodev 132 #define utwrite nodev 133 #define utreset nulldev 134 #define utioctl nodev 135 #define utdump nodev 136 #endif 137 138 #include "rb.h" 139 #if NIDC > 0 140 int idcopen(),idcstrategy(),idcread(),idcwrite(); 141 int idcreset(),idcdump(),idcsize();; 142 #else 143 #define idcopen nodev 144 #define idcstrategy nodev 145 #define idcread nodev 146 #define idcwrite nodev 147 #define idcreset nulldev 148 #define idcdump nodev 149 #define idcsize 0 150 #endif 151 152 #if defined(VAX750) || defined(VAX730) 153 int tuopen(),tuclose(),tustrategy(); 154 #else 155 #define tuopen nodev 156 #define tuclose nodev 157 #define tustrategy nodev 158 #endif 159 160 #include "rx.h" 161 #if NFX > 0 162 int rxopen(),rxstrategy(),rxclose(),rxread(),rxwrite(),rxreset(),rxioctl(); 163 #else 164 #define rxopen nodev 165 #define rxstrategy nodev 166 #define rxclose nodev 167 #define rxread nodev 168 #define rxwrite nodev 169 #define rxreset nulldev 170 #define rxioctl nodev 171 #endif 172 173 #include "uu.h" 174 #if NUU > 0 175 int uuopen(),uustrategy(),uuclose(),uureset(),uuioctl(); 176 #else 177 #define uuopen nodev 178 #define uustrategy nodev 179 #define uuclose nodev 180 #define uureset nulldev 181 #define uuioctl nodev 182 #endif 183 184 #include "rl.h" 185 #if NRL > 0 186 int rlopen(),rlstrategy(),rlread(),rlwrite(); 187 int rlreset(),rldump(),rlsize(); 188 #else 189 #define rlopen nodev 190 #define rlstrategy nodev 191 #define rlread nodev 192 #define rlwrite nodev 193 #define rlreset nulldev 194 #define rldump nodev 195 #define rlsize 0 196 #endif 197 198 int swstrategy(),swread(),swwrite(); 199 200 struct bdevsw bdevsw[] = 201 { 202 { hpopen, nulldev, hpstrategy, hpdump, /*0*/ 203 hpsize, 0 }, 204 { htopen, htclose, htstrategy, htdump, /*1*/ 205 0, B_TAPE }, 206 { upopen, nulldev, upstrategy, updump, /*2*/ 207 upsize, 0 }, 208 { rkopen, nulldev, rkstrategy, rkdump, /*3*/ 209 rksize, 0 }, 210 { nodev, nodev, swstrategy, nodev, /*4*/ 211 0, 0 }, 212 { tmopen, tmclose, tmstrategy, tmdump, /*5*/ 213 0, B_TAPE }, 214 { tsopen, tsclose, tsstrategy, tsdump, /*6*/ 215 0, B_TAPE }, 216 { mtopen, mtclose, mtstrategy, mtdump, /*7*/ 217 0, B_TAPE }, 218 { tuopen, tuclose, tustrategy, nodev, /*8*/ 219 0, B_TAPE }, 220 { udopen, nulldev, udstrategy, uddump, /*9*/ 221 udsize, 0 }, 222 { utopen, utclose, utstrategy, utdump, /*10*/ 223 0, B_TAPE }, 224 { idcopen, nodev, idcstrategy, idcdump, /*11*/ 225 idcsize, 0 }, 226 { rxopen, rxclose, rxstrategy, nodev, /*12*/ 227 0, 0 }, 228 { uuopen, uuclose, uustrategy, nodev, /*13*/ 229 0, 0 }, 230 { rlopen, nodev, rlstrategy, rldump, /*14*/ 231 rlsize, 0 }, 232 }; 233 int nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]); 234 235 int cnopen(),cnclose(),cnread(),cnwrite(),cnioctl(); 236 struct tty cons; 237 238 #include "acc.h" 239 #if NACC > 0 240 int accreset(); 241 #else 242 #define accreset nulldev 243 #endif 244 245 #include "ct.h" 246 #if NCT > 0 247 int ctopen(),ctclose(),ctwrite(); 248 #else 249 #define ctopen nulldev 250 #define ctclose nulldev 251 #define ctwrite nulldev 252 #endif 253 254 #include "dh.h" 255 #if NDH == 0 256 #define dhopen nodev 257 #define dhclose nodev 258 #define dhread nodev 259 #define dhwrite nodev 260 #define dhioctl nodev 261 #define dhstop nodev 262 #define dhreset nulldev 263 #define dh11 0 264 #else 265 int dhopen(),dhclose(),dhread(),dhwrite(),dhioctl(),dhstop(),dhreset(); 266 struct tty dh11[]; 267 #endif 268 269 #include "dmf.h" 270 #if NDMF == 0 271 #define dmfopen nodev 272 #define dmfclose nodev 273 #define dmfread nodev 274 #define dmfwrite nodev 275 #define dmfioctl nodev 276 #define dmfstop nodev 277 #define dmfreset nulldev 278 #define dmf_tty 0 279 #else 280 int dmfopen(),dmfclose(),dmfread(),dmfwrite(),dmfioctl(),dmfstop(),dmfreset(); 281 struct tty dmf_tty[]; 282 #endif 283 284 #if VAX780 285 int flopen(),flclose(),flread(),flwrite(); 286 #else 287 #define flopen nodev 288 #define flclose nodev 289 #define flread nodev 290 #define flwrite nodev 291 #endif 292 293 #include "dz.h" 294 #if NDZ == 0 295 #define dzopen nodev 296 #define dzclose nodev 297 #define dzread nodev 298 #define dzwrite nodev 299 #define dzioctl nodev 300 #define dzstop nodev 301 #define dzreset nulldev 302 #define dz_tty 0 303 #else 304 int dzopen(),dzclose(),dzread(),dzwrite(),dzioctl(),dzstop(),dzreset(); 305 struct tty dz_tty[]; 306 #endif 307 308 #include "lp.h" 309 #if NLP > 0 310 int lpopen(),lpclose(),lpwrite(),lpreset(); 311 #else 312 #define lpopen nodev 313 #define lpclose nodev 314 #define lpwrite nodev 315 #define lpreset nulldev 316 #endif 317 318 int syopen(),syread(),sywrite(),syioctl(),syselect(); 319 320 int mmread(),mmwrite(); 321 #define mmselect seltrue 322 323 #include "va.h" 324 #if NVA > 0 325 int vaopen(),vaclose(),vawrite(),vaioctl(),vareset(),vaselect(); 326 #else 327 #define vaopen nodev 328 #define vaclose nodev 329 #define vawrite nodev 330 #define vaopen nodev 331 #define vaioctl nodev 332 #define vareset nulldev 333 #define vaselect nodev 334 #endif 335 336 #include "vp.h" 337 #if NVP > 0 338 int vpopen(),vpclose(),vpwrite(),vpioctl(),vpreset(),vpselect(); 339 #else 340 #define vpopen nodev 341 #define vpclose nodev 342 #define vpwrite nodev 343 #define vpioctl nodev 344 #define vpreset nulldev 345 #define vpselect nodev 346 #endif 347 348 #include "pty.h" 349 #if NPTY > 0 350 int ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop(); 351 int ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect(); 352 int ptyioctl(); 353 struct tty pt_tty[]; 354 #else 355 #define ptsopen nodev 356 #define ptsclose nodev 357 #define ptsread nodev 358 #define ptswrite nodev 359 #define ptcopen nodev 360 #define ptcclose nodev 361 #define ptcread nodev 362 #define ptcwrite nodev 363 #define ptyioctl nodev 364 #define pt_tty 0 365 #define ptcselect nodev 366 #define ptsstop nulldev 367 #endif 368 369 #include "lpa.h" 370 #if NLPA > 0 371 int lpaopen(),lpaclose(),lparead(),lpawrite(),lpaioctl(); 372 #else 373 #define lpaopen nodev 374 #define lpaclose nodev 375 #define lparead nodev 376 #define lpawrite nodev 377 #define lpaioctl nodev 378 #endif 379 380 #include "dn.h" 381 #if NDN > 0 382 int dnopen(),dnclose(),dnwrite(); 383 #else 384 #define dnopen nodev 385 #define dnclose nodev 386 #define dnwrite nodev 387 #endif 388 389 #include "gpib.h" 390 #if NGPIB > 0 391 int gpibopen(),gpibclose(),gpibread(),gpibwrite(),gpibioctl(); 392 #else 393 #define gpibopen nodev 394 #define gpibclose nodev 395 #define gpibread nodev 396 #define gpibwrite nodev 397 #define gpibioctl nodev 398 #endif 399 400 #include "ik.h" 401 #if NIK > 0 402 int ikopen(),ikclose(),ikread(),ikwrite(),ikioctl(),ikreset(); 403 #else 404 #define ikopen nodev 405 #define ikclose nodev 406 #define ikread nodev 407 #define ikwrite nodev 408 #define ikioctl nodev 409 #define ikreset nodev 410 #endif 411 412 #include "ps.h" 413 #if NPS > 0 414 int psopen(),psclose(),psread(),pswrite(),psioctl(),psreset(); 415 #else 416 #define psopen nodev 417 #define psclose nodev 418 #define psread nodev 419 #define pswrite nodev 420 #define psopen nodev 421 #define psioctl nodev 422 #define psreset nodev 423 #endif 424 425 #include "ib.h" 426 #if NIB > 0 427 int ibopen(),ibclose(),ibread(),ibwrite(),ibioctl(); 428 #else 429 #define ibopen nodev 430 #define ibclose nodev 431 #define ibread nodev 432 #define ibwrite nodev 433 #define ibioctl nodev 434 #endif 435 436 #include "ad.h" 437 #if NAD > 0 438 int adopen(),adclose(),adioctl(),adreset(); 439 #else 440 #define adopen nodev 441 #define adclose nodev 442 #define adioctl nodev 443 #define adreset nodev 444 #endif 445 446 int ttselect(), seltrue(); 447 448 struct cdevsw cdevsw[] = 449 { 450 cnopen, cnclose, cnread, cnwrite, /*0*/ 451 cnioctl, nulldev, nulldev, &cons, 452 ttselect, nodev, 453 dzopen, dzclose, dzread, dzwrite, /*1*/ 454 dzioctl, dzstop, dzreset, dz_tty, 455 ttselect, nodev, 456 syopen, nulldev, syread, sywrite, /*2*/ 457 syioctl, nulldev, nulldev, 0, 458 syselect, nodev, 459 nulldev, nulldev, mmread, mmwrite, /*3*/ 460 nodev, nulldev, nulldev, 0, 461 mmselect, nodev, 462 hpopen, nulldev, hpread, hpwrite, /*4*/ 463 hpioctl, nodev, nulldev, 0, 464 seltrue, nodev, 465 htopen, htclose, htread, htwrite, /*5*/ 466 htioctl, nodev, nulldev, 0, 467 seltrue, nodev, 468 vpopen, vpclose, nodev, vpwrite, /*6*/ 469 vpioctl, nulldev, vpreset, 0, 470 vpselect, nodev, 471 nulldev, nulldev, swread, swwrite, /*7*/ 472 nodev, nodev, nulldev, 0, 473 nodev, nodev, 474 flopen, flclose, flread, flwrite, /*8*/ 475 nodev, nodev, nulldev, 0, 476 seltrue, nodev, 477 udopen, nulldev, udread, udwrite, /*9*/ 478 nodev, nodev, udreset, 0, 479 seltrue, nodev, 480 vaopen, vaclose, nodev, vawrite, /*10*/ 481 vaioctl, nulldev, vareset, 0, 482 vaselect, nodev, 483 rkopen, nulldev, rkread, rkwrite, /*11*/ 484 nodev, nodev, rkreset, 0, 485 seltrue, nodev, 486 dhopen, dhclose, dhread, dhwrite, /*12*/ 487 dhioctl, dhstop, dhreset, dh11, 488 ttselect, nodev, 489 upopen, nulldev, upread, upwrite, /*13*/ 490 nodev, nodev, upreset, 0, 491 seltrue, nodev, 492 tmopen, tmclose, tmread, tmwrite, /*14*/ 493 tmioctl, nodev, tmreset, 0, 494 seltrue, nodev, 495 lpopen, lpclose, nodev, lpwrite, /*15*/ 496 nodev, nodev, lpreset, 0, 497 seltrue, nodev, 498 tsopen, tsclose, tsread, tswrite, /*16*/ 499 tsioctl, nodev, tsreset, 0, 500 seltrue, nodev, 501 utopen, utclose, utread, utwrite, /*17*/ 502 utioctl, nodev, utreset, 0, 503 seltrue, nodev, 504 ctopen, ctclose, nodev, ctwrite, /*18*/ 505 nodev, nodev, nulldev, 0, 506 seltrue, nodev, 507 mtopen, mtclose, mtread, mtwrite, /*19*/ 508 mtioctl, nodev, nodev, 0, 509 seltrue, nodev, 510 ptsopen, ptsclose, ptsread, ptswrite, /*20*/ 511 ptyioctl, ptsstop, nodev, pt_tty, 512 ttselect, nodev, 513 ptcopen, ptcclose, ptcread, ptcwrite, /*21*/ 514 ptyioctl, nulldev, nodev, pt_tty, 515 ptcselect, nodev, 516 dmfopen, dmfclose, dmfread, dmfwrite, /*22*/ 517 dmfioctl, dmfstop, dmfreset, dmf_tty, 518 ttselect, nodev, 519 idcopen, nulldev, idcread, idcwrite, /*23*/ 520 nodev, nodev, idcreset, 0, 521 seltrue, nodev, 522 dnopen, dnclose, nodev, dnwrite, /*24*/ 523 nodev, nodev, nodev, 0, 524 seltrue, nodev, 525 /* 25-29 reserved to local sites */ 526 gpibopen, gpibclose, gpibread, gpibwrite, /*25*/ 527 gpibioctl, nulldev, nodev, 0, 528 seltrue, nodev, 529 lpaopen, lpaclose, lparead, lpawrite, /*26*/ 530 lpaioctl, nodev, nulldev, 0, 531 seltrue, nodev, 532 psopen, psclose, psread, pswrite, /*27*/ 533 psioctl, nodev, psreset, 0, 534 seltrue, nodev, 535 ibopen, ibclose, ibread, ibwrite, /*28*/ 536 ibioctl, nodev, nodev, 0, 537 seltrue, nodev, 538 adopen, adclose, nodev, nodev, /*29*/ 539 adioctl, nodev, adreset, 0, 540 seltrue, nodev, 541 rxopen, rxclose, rxread, rxwrite, /*30*/ 542 rxioctl, nodev, rxreset, 0, 543 seltrue, nodev, 544 ikopen, ikclose, ikread, ikwrite, /*31*/ 545 ikioctl, nodev, ikreset, 0, 546 seltrue, nodev, 547 rlopen, nodev, rlread, rlwrite, /* 32 */ 548 nodev, nodev, rlreset, 0, 549 seltrue, nodev, 550 }; 551 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]); 552 553 int mem_no = 3; /* major device number of memory special file */ 554 555 /* 556 * Swapdev is a fake device implemented 557 * in sw.c used only internally to get to swstrategy. 558 * It cannot be provided to the users, because the 559 * swstrategy routine munches the b_dev and b_blkno entries 560 * before calling the appropriate driver. This would horribly 561 * confuse, e.g. the hashing routines. Instead, /dev/drum is 562 * provided as a character (raw) device. 563 */ 564 dev_t swapdev = makedev(4, 0); 565