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