|
|
1.1 ! root 1: /* conf.c 4.32+ 82/12/05 */ ! 2: ! 3: #include "../h/param.h" ! 4: #include "../h/systm.h" ! 5: #include "../h/buf.h" ! 6: #include "../h/conf.h" ! 7: #include "../h/text.h" ! 8: #include "../h/dir.h" ! 9: #include "../h/user.h" ! 10: #include "../h/proc.h" ! 11: #include "../h/file.h" ! 12: #include "../h/inode.h" ! 13: #include "../h/acct.h" ! 14: #include "../h/pte.h" ! 15: #include "sparam.h" ! 16: ! 17: int nulldev(); ! 18: int nodev(); ! 19: ! 20: #include "hp.h" ! 21: #if NHP > 0 ! 22: int hpstrategy(),hpread(),hpwrite(),hpioctl(),hpintr(),hpdump(); ! 23: #else ! 24: #define hpstrategy nodev ! 25: #define hpread nodev ! 26: #define hpwrite nodev ! 27: #define hpioctl nodev ! 28: #define hpintr nodev ! 29: #define hpdump nodev ! 30: #endif ! 31: ! 32: #include "tu.h" ! 33: #if NHT > 0 ! 34: int htopen(),htclose(),htstrategy(),htread(),htwrite(),htdump(),htioctl(); ! 35: #else ! 36: #define htopen nodev ! 37: #define htclose nodev ! 38: #define htstrategy nodev ! 39: #define htread nodev ! 40: #define htwrite nodev ! 41: #define htdump nodev ! 42: #define htioctl nodev ! 43: #endif ! 44: ! 45: #include "mu.h" ! 46: #if NMT > 0 ! 47: int mtopen(),mtclose(),mtstrategy(),mtread(),mtwrite(); ! 48: int mtioctl(),mtdump(); ! 49: #else ! 50: #define mtopen nodev ! 51: #define mtclose nodev ! 52: #define mtstrategy nodev ! 53: #define mtread nodev ! 54: #define mtwrite nodev ! 55: #define mtioctl nodev ! 56: #define mtdump nodev ! 57: #endif ! 58: ! 59: #include "rk.h" ! 60: #if NHK > 0 ! 61: int rkstrategy(),rkread(),rkwrite(),rkintr(),rkdump(),rkreset(); ! 62: #else ! 63: #define rkstrategy nodev ! 64: #define rkread nodev ! 65: #define rkwrite nodev ! 66: #define rkintr nodev ! 67: #define rkdump nodev ! 68: #define rkreset nodev ! 69: #endif ! 70: ! 71: #include "te.h" ! 72: #if NTE > 0 ! 73: int tmopen(),tmclose(),tmstrategy(),tmread(),tmwrite(); ! 74: int tmioctl(),tmdump(),tmreset(); ! 75: #else ! 76: #define tmopen nodev ! 77: #define tmclose nodev ! 78: #define tmstrategy nodev ! 79: #define tmread nodev ! 80: #define tmwrite nodev ! 81: #define tmioctl nodev ! 82: #define tmdump nodev ! 83: #define tmreset nodev ! 84: #endif ! 85: ! 86: #include "ts.h" ! 87: #if NTS > 0 ! 88: int tsopen(),tsclose(),tsstrategy(),tsread(),tswrite(); ! 89: int tsioctl(),tsdump(),tsreset(); ! 90: #else ! 91: #define tsopen nodev ! 92: #define tsclose nodev ! 93: #define tsstrategy nodev ! 94: #define tsread nodev ! 95: #define tswrite nodev ! 96: #define tsioctl nodev ! 97: #define tsdump nodev ! 98: #define tsreset nodev ! 99: #endif ! 100: ! 101: #include "up.h" ! 102: #if NSC > 0 ! 103: int upstrategy(),upread(),upwrite(),upreset(),updump(); ! 104: #else ! 105: #define upstrategy nodev ! 106: #define upread nodev ! 107: #define upwrite nodev ! 108: #define upreset nulldev ! 109: #define updump nodev ! 110: #endif ! 111: ! 112: #include "ra.h" ! 113: #if NUDA > 0 ! 114: int udstrategy(), udread(), udwrite(), udioctl(), udreset(), uddump(); ! 115: #else ! 116: #define udstrategy nodev ! 117: #define udread nodev ! 118: #define udwrite nodev ! 119: #define udioctl nodev ! 120: #define udreset nulldev ! 121: #define uddump nodev ! 122: #endif ! 123: ! 124: int swstrategy(),swread(),swwrite(); ! 125: ! 126: struct bdevsw bdevsw[] = ! 127: { ! 128: nulldev, nulldev, hpstrategy, hpdump, 0, /*0*/ ! 129: htopen, htclose, htstrategy, htdump, B_TAPE, /*1*/ ! 130: nulldev, nulldev, upstrategy, updump, 0, /*2*/ ! 131: nulldev, nulldev, rkstrategy, rkdump, 0, /*3*/ ! 132: nodev, nodev, swstrategy, nodev, 0, /*4*/ ! 133: tmopen, tmclose, tmstrategy, tmdump, B_TAPE, /*5*/ ! 134: tsopen, tsclose, tsstrategy, tsdump, B_TAPE, /*6*/ ! 135: nulldev, nulldev, udstrategy, uddump, 0, /*7*/ ! 136: mtopen, mtclose, mtstrategy, mtdump, B_TAPE, /*8*/ ! 137: 0, ! 138: }; ! 139: ! 140: extern struct streamtab cninfo; ! 141: ! 142: #if VAX780 ! 143: int flopen(),flclose(),flread(),flwrite(); ! 144: #endif ! 145: ! 146: #include "ctu.h" ! 147: #if NCTU > 0 ! 148: extern ctuopen(), ctuclose(), cturead(), ctuwrite(); ! 149: #else ! 150: #define ctuopen nodev ! 151: #define ctuclose nodev ! 152: #define cturead nodev ! 153: #define ctuwrite nodev ! 154: cturint() {printf("cons mass storage stray\n");} ! 155: ctuxint() {printf("cons mass storage stray\n");} ! 156: #endif ! 157: ! 158: #include "dk.h" ! 159: #if NDK > 0 ! 160: extern struct streamtab dkinfo; ! 161: int dkreset(); ! 162: #else ! 163: #define dkinfo NULL ! 164: #define dkreset nulldev ! 165: #endif ! 166: ! 167: #include "dz.h" ! 168: #if NDZ > 0 ! 169: extern struct streamtab dzinfo; ! 170: #else ! 171: #define dzinfo NULL ! 172: #endif ! 173: ! 174: #include "inet.h" ! 175: #if NINET > 0 ! 176: extern struct streamtab ipdinfo; ! 177: extern struct streamtab tcpdinfo; ! 178: #else ! 179: #define ipdinfo *(struct streamtab *)NULL ! 180: #define tcpdinfo *(struct streamtab *)NULL ! 181: #endif ! 182: ! 183: #include "il.h" ! 184: #if NIL > 0 ! 185: extern struct streamtab ilsinfo; ! 186: #else ! 187: #define ilsinfo *(struct streamtab *)NULL ! 188: #endif ! 189: ! 190: #include "lp.h" ! 191: #if NLP > 0 ! 192: int lpopen(),lpclose(),lpwrite(),lpreset(); ! 193: #else ! 194: #define lpopen nodev ! 195: #define lpclose nodev ! 196: #define lpwrite nodev ! 197: #define lpreset nulldev ! 198: #endif ! 199: ! 200: int mmread(),mmwrite(); ! 201: ! 202: #include "va.h" ! 203: #if NVA > 0 ! 204: int vaopen(),vaclose(),vawrite(),vaioctl(),vareset(); ! 205: #else ! 206: #define vaopen nodev ! 207: #define vaclose nodev ! 208: #define vawrite nodev ! 209: #define vaopen nodev ! 210: #define vaioctl nodev ! 211: #define vareset nulldev ! 212: #endif ! 213: ! 214: #include "vp.h" ! 215: #if NVP > 0 ! 216: int vpopen(),vpclose(),vpwrite(),vpioctl(),vpreset(); ! 217: #else ! 218: #define vpopen nodev ! 219: #define vpclose nodev ! 220: #define vpwrite nodev ! 221: #define vpioctl nodev ! 222: #define vpreset nulldev ! 223: #endif ! 224: ! 225: #include "sp.h" ! 226: #if NSP>0 ! 227: struct streamtab spinfo; ! 228: #else ! 229: #define spinfo NULL ! 230: #endif ! 231: ! 232: #include "dn.h" ! 233: #if NDN > 0 ! 234: int dnopen(), dnclose(), dnwrite(); ! 235: #else ! 236: #define dnopen nodev ! 237: #define dnclose nodev ! 238: #define dnwrite nodev ! 239: #endif ! 240: ! 241: #include "tri.h" ! 242: #if NTRI > 0 ! 243: int triopen(), triclose(), triwrite(); ! 244: #else ! 245: #define triopen nodev ! 246: #define triclose nodev ! 247: #define triwrite nodev ! 248: #endif ! 249: ! 250: #include "rtk.h" ! 251: #if NRTK > 0 ! 252: int rtkopen(), rtkclose(), rtkread(), rtkwrite(), rtkioctl(); ! 253: #else ! 254: #define rtkopen nodev ! 255: #define rtkclose nodev ! 256: #define rtkread nodev ! 257: #define rtkwrite nodev ! 258: #define rtkioctl nodev ! 259: #endif ! 260: ! 261: #include "ekx.h" ! 262: #if NEKX > 0 ! 263: int ekxopen(), ekxclose(), ekxread(), ekxwrite(), ekxioctl(); ! 264: #else ! 265: #define ekxopen nodev ! 266: #define ekxclose nodev ! 267: #define ekxread nodev ! 268: #define ekxwrite nodev ! 269: #define ekxioctl nodev ! 270: #endif ! 271: ! 272: #include "scn.h" ! 273: #if NSCN > 0 ! 274: int scnopen(), scnclose(), scnread(), scnwrite(), scnioctl(); ! 275: #else ! 276: #define scnopen nodev ! 277: #define scnclose nodev ! 278: #define scnread nodev ! 279: #define scnwrite nodev ! 280: #define scnioctl nodev ! 281: #endif ! 282: ! 283: #include "cv.h" ! 284: #if NCV > 0 ! 285: int cvopen(), cvclose(), cvread(), cvwrite(), cvioctl(), cvreset(); ! 286: #else ! 287: #define cvopen nodev ! 288: #define cvclose nodev ! 289: #define cvread nodev ! 290: #define cvwrite nodev ! 291: #define cvioctl nodev ! 292: #define cvreset nodev ! 293: #endif ! 294: ! 295: #include "iti.h" ! 296: #if NITI > 0 ! 297: int itiopen(), iticlose() , itiioctl(); ! 298: #else ! 299: #define itiopen nodev ! 300: #define iticlose nodev ! 301: #define itiioctl nodev ! 302: #endif ! 303: ! 304: #include "sn.h" ! 305: #if NSN > 0 ! 306: int snopen(), snclose(), snioctl(), snreset(); ! 307: #else ! 308: #define snopen nodev ! 309: #define snclose nodev ! 310: #define snread nodev ! 311: #define snwrite nodev ! 312: #define snioctl nodev ! 313: #define snreset nodev ! 314: #endif ! 315: ! 316: #include "an.h" ! 317: #if NAP > 0 ! 318: int anopen(), anclose(), anread(), anwrite(), anreset(), anioctl(); ! 319: #else ! 320: #define anopen nodev ! 321: #define anclose nodev ! 322: #define anread nodev ! 323: #define anwrite nodev ! 324: #define anreset nodev ! 325: #define anioctl nodev ! 326: #endif ! 327: ! 328: #include "kmc.h" ! 329: #if NKMC > 0 ! 330: int kmcopen(), kmcclose(), kmcread(), kmcwrite(), kmcioctl(); ! 331: #else ! 332: #define kmcopen nodev ! 333: #define kmcclose nodev ! 334: #define kmcread nodev ! 335: #define kmcwrite nodev ! 336: #define kmcioctl nodev ! 337: #endif ! 338: ! 339: #include "ec.h" ! 340: #if NEC > 0 ! 341: extern struct streamtab ecsinfo; ! 342: #else ! 343: #define ecsinfo *(struct streamtab *)NULL ! 344: #endif ! 345: ! 346: #include "kdi.h" ! 347: #if NKDI == 0 ! 348: #define kdi NULL ! 349: #define kdishutdown nodev ! 350: #else ! 351: extern struct streamtab kdiinfo; ! 352: int kdishutdown(); ! 353: #define kdi &kdiinfo ! 354: #endif ! 355: ! 356: #include "lex.h" ! 357: #if NLEX == 0 ! 358: #define lexopen nodev ! 359: #define lexclose nodev ! 360: #define lexread nodev ! 361: #define lexwrite nodev ! 362: #define lexioctl nodev ! 363: #else ! 364: int lexopen(), lexclose(), lexread(), lexwrite(), lexioctl(); ! 365: #endif ! 366: ! 367: #include "bpd.h" ! 368: #if NBPD == 0 ! 369: #define bpdopen nodev ! 370: #define bpdclose nodev ! 371: #define bpdread nodev ! 372: #define bpdioctl nodev ! 373: #else ! 374: int bpdopen(), bpdclose(), bpdread(), bpdioctl(); ! 375: #endif ! 376: ! 377: /* merganthaler 202 */ ! 378: #include "mg.h" ! 379: #if NMG>0 ! 380: extern struct streamtab mginfo; ! 381: #define mg &mginfo ! 382: #else ! 383: #define mg NULL ! 384: #endif ! 385: ! 386: #include "ju.h" ! 387: #if NJU == 0 ! 388: #define juopen nodev ! 389: #define juclose nodev ! 390: #define juread nodev ! 391: #define juwrite nodev ! 392: #define juioctl nodev ! 393: #else ! 394: int juopen(), juclose(), juread(), juwrite(), juioctl(); ! 395: #endif ! 396: ! 397: #include "om.h" ! 398: #if NOM > 0 ! 399: int omopen(),omclose(),omread(),omwrite(),omioctl(); ! 400: #else ! 401: #define omopen nodev ! 402: #define omclose nodev ! 403: #define omread nodev ! 404: #define omwrite nodev ! 405: #define omioctl nodev ! 406: #endif ! 407: ! 408: #include "chaos.h" ! 409: #if NCHAOS > 0 ! 410: ! 411: #define CHDEV_OFFSET 32 ! 412: long cdevpath = 1L << (34 - CHDEV_OFFSET); ! 413: int chropen(),chrclose(),chrread(),chrwrite(),chrioctl(),chreset(); ! 414: ! 415: #else NCHAOS == 0 ! 416: ! 417: #define chropen nodev ! 418: #define chrclose nodev ! 419: #define chrread nodev ! 420: #define chrwrite nodev ! 421: #define chrioctl nodev ! 422: #define chreset nodev ! 423: ! 424: #endif NCHAOS ! 425: ! 426: #include "cht.h" ! 427: #if NCHT > 0 ! 428: ! 429: #if NCHAOS == 0 ! 430: ***this won't work**** you must have CHAOS to have CHT ! 431: #endif NCHAOS ! 432: ! 433: int chtopen(),chtclose(),chtread(),chtwrite(),chtioctl(); ! 434: struct tty cht_tty[]; ! 435: ! 436: #else NCHT == 0 ! 437: ! 438: #define chtopen nodev ! 439: #define chtclose nodev ! 440: #define chtread nodev ! 441: #define chtwrite nodev ! 442: #define chtioctl nodev ! 443: #define cht_tty 0 ! 444: ! 445: #endif NCHT ! 446: ! 447: #include "chil.h" ! 448: #define chilopen nodev ! 449: #define chilclose nodev ! 450: #define chilread nodev ! 451: #define chilwrite nodev ! 452: #define chilioctl nodev ! 453: #define chilreset nulldev ! 454: ! 455: #include "ds.h" ! 456: #if NDS > 0 ! 457: int dsopen(),dsclose(),dsread(),dswrite(),dsioctl(); ! 458: #else ! 459: #define dsopen nodev ! 460: #define dsclose nodev ! 461: #define dsread nodev ! 462: #define dswrite nodev ! 463: #define dsioctl nodev ! 464: #endif ! 465: ! 466: #include "ch.h" ! 467: #if NCH > 0 ! 468: extern struct streamtab chdinfo; ! 469: #else ! 470: #define chdinfo *(struct streamtab *)NULL ! 471: #endif ! 472: ! 473: struct cdevsw cdevsw[] = ! 474: { ! 475: /*cn*/ nodev, nodev, nodev, nodev, /*0*/ ! 476: nodev, nulldev, &cninfo, ! 477: /*dz*/ nodev, nodev, nodev, nodev, /*1*/ ! 478: nodev, nulldev, &dzinfo, ! 479: /*ctu*/ ctuopen, ctuclose, cturead, ctuwrite, /*2*/ ! 480: nodev, nodev, NULL, ! 481: /*mem*/ nulldev, nulldev, mmread, mmwrite, /*3*/ ! 482: nodev, nulldev, NULL, ! 483: /*hp*/ nulldev, nulldev, hpread, hpwrite, /*4*/ ! 484: hpioctl, nulldev, NULL, ! 485: /*ht*/ htopen, htclose, htread, htwrite, /*5*/ ! 486: htioctl, nulldev, NULL, ! 487: /*vp*/ vpopen, vpclose, nodev, vpwrite, /*6*/ ! 488: vpioctl, vpreset, NULL, ! 489: /*sw*/ nulldev, nulldev, swread, swwrite, /*7*/ ! 490: nodev, nulldev, NULL, ! 491: #if VAX780 ! 492: /*fl*/ flopen, flclose, flread, flwrite, /*8*/ ! 493: nodev, nulldev, NULL, ! 494: #else ! 495: /*fl*/ nodev, nodev, nodev, nodev, /*8*/ ! 496: nodev, nodev, NULL, ! 497: #endif ! 498: /*xx*/ nodev, nodev, nodev, nodev, /*9mx*/ ! 499: nodev, nulldev, NULL, ! 500: /*va*/ vaopen, vaclose, nodev, vawrite, /*10*/ ! 501: vaioctl, vareset, NULL, ! 502: /*rk*/ nulldev, nulldev, rkread, rkwrite, /*11*/ ! 503: nodev, rkreset, NULL, ! 504: /*xx*/ nodev, nodev, nodev, nodev, /*12dh*/ ! 505: nodev, nodev, NULL, ! 506: /*up*/ nulldev, nulldev, upread, upwrite, /*13*/ ! 507: nodev, upreset, NULL, ! 508: /*tm*/ tmopen, tmclose, tmread, tmwrite, /*14*/ ! 509: tmioctl, tmreset, NULL, ! 510: /*lp*/ lpopen, lpclose, nodev, lpwrite, /*15*/ ! 511: nodev, lpreset, NULL, ! 512: /*ts*/ tsopen, tsclose, tsread, tswrite, /*16*/ ! 513: tsioctl, tsreset, NULL, ! 514: /*dk*/ nodev, nodev, nodev, nodev, /*17*/ ! 515: #if NDK > 0 ! 516: nodev, nulldev, &dkinfo, ! 517: #else ! 518: nodev, dkreset, NULL, ! 519: #endif ! 520: /*sp*/ nodev, nodev, nodev, nodev, /*18*/ ! 521: nodev, nulldev, &spinfo, ! 522: /*dn*/ dnopen, dnclose, nodev, dnwrite, /*19*/ ! 523: nodev, nulldev, NULL, ! 524: /*ptm*/ nodev, nodev, nodev, nodev, /*20pt*/ ! 525: nodev, nulldev, NULL, ! 526: /*pts*/ nodev, nodev, nodev, nodev, /*21pt*/ ! 527: nodev, nulldev, NULL, ! 528: /*mt*/ mtopen, mtclose, mtread, mtwrite, /*22*/ ! 529: mtioctl, nulldev, NULL, ! 530: /*tri*/ triopen, triclose, nodev, triwrite, /*23*/ ! 531: nodev, nulldev, NULL, ! 532: /*xx*/ nodev, nodev, nodev, nodev, /*24*/ ! 533: nodev, nulldev, NULL, ! 534: /* 25-29 reserved to local sites */ ! 535: /*rtk*/ rtkopen, rtkclose, rtkread, rtkwrite, /*25*/ ! 536: rtkioctl, nulldev, NULL, ! 537: /*kmc*/ kmcopen, kmcclose, kmcread, kmcwrite, /*26*/ ! 538: kmcioctl, nulldev, NULL, ! 539: /*ec*/ nodev, nodev, nodev, nodev, /*27*/ ! 540: nodev, nulldev, &ecsinfo, ! 541: /*uda*/ nulldev, nulldev, udread, udwrite, /*28*/ ! 542: udioctl, nulldev, NULL, ! 543: /*ekx*/ ekxopen, ekxclose, ekxread, ekxwrite, /*29*/ ! 544: ekxioctl, nulldev, NULL, ! 545: /*cv*/ cvopen, cvclose, cvread, cvwrite, /*30*/ ! 546: cvioctl, cvreset, NULL, ! 547: /*kdi*/ nodev, nodev, nodev, nodev, /*31*/ ! 548: nodev, kdishutdown, kdi, ! 549: /*mg*/ nodev, nodev, nodev, nodev, /*32*/ ! 550: nodev, nulldev, mg, ! 551: /*ju*/ juopen, juclose, juread, juwrite, /*33*/ ! 552: juioctl, nulldev, NULL, ! 553: /*chr*/ chropen, chrclose, chrread, chrwrite, /*34*/ ! 554: chrioctl, chreset, NULL, ! 555: /*cht*/ chtopen, chtclose, chtread, chtwrite, /*35*/ ! 556: chtioctl, nulldev, cht_tty, ! 557: /*chil*/chilopen, chilclose, chilread, chilwrite, /*36*/ ! 558: chilioctl, chilreset, NULL, ! 559: /*lex*/ lexopen, lexclose, lexread, lexwrite, /*37*/ ! 560: lexioctl, nulldev, NULL, ! 561: /*bpd*/ bpdopen, bpdclose, bpdread, nulldev, /*38*/ ! 562: bpdioctl, nulldev, NULL, ! 563: /*om*/ omopen, omclose, omread, omwrite, /*39*/ ! 564: omioctl, nulldev, NULL, ! 565: /*std*/ nodev, nodev, nodev, nodev, /*40*/ ! 566: nodev, nulldev, NULL, ! 567: /*ds*/ dsopen, dsclose, dsread, dswrite, /*41*/ ! 568: dsioctl, nulldev, NULL, ! 569: /*ip*/ nodev, nodev, nodev, nodev, /*42*/ ! 570: nodev, nulldev, &ipdinfo, ! 571: /*tcp*/ nodev, nodev, nodev, nodev, /*43*/ ! 572: nodev, nulldev, &tcpdinfo, ! 573: /*il*/ nodev, nodev, nodev, nodev, /*44*/ ! 574: nodev, nulldev, &ilsinfo, ! 575: /*scn*/ scnopen, scnclose, scnread, scnwrite, /*45*/ ! 576: scnioctl, nulldev, NULL, ! 577: /*sn*/ snopen, snclose, nodev, nodev, /*46*/ ! 578: snioctl, nulldev, NULL, ! 579: /*an*/ anopen, anclose, anread, anwrite, /*47*/ ! 580: anioctl, nulldev, NULL, ! 581: /*ch*/ nodev, nodev, nodev, nodev, /*48*/ ! 582: nodev, nodev, &chdinfo, ! 583: /*iti*/ itiopen, iticlose, nodev, nodev, /*49*/ ! 584: itiioctl, nulldev, NULL, ! 585: /*udp*/ nodev, nodev, nodev, nodev, /*50*/ ! 586: nodev, nulldev, &udpdinfo, ! 587: 0 ! 588: }; ! 589: ! 590: int nchrdev = sizeof(cdevsw)/sizeof(struct cdevsw) - 1; ! 591: ! 592: extern int rnami(), smount(); ! 593: extern int naput(), nafree(), naupdat(), naread(), nawrite(), natrunc(); ! 594: extern int nastat(), nanami(), namount(); ! 595: extern struct inode *naget(); ! 596: extern int prput(), prfree(), prupdat(), prread(), prwrite(), prtrunc(); ! 597: extern int prstat(), prnami(), prmount(), prioctl(); ! 598: extern struct inode *prget(); ! 599: extern int mpput(), mpfree(), mpupdat(), mpread(), mpwrite(); ! 600: extern int mptrunc(), mpstat(), mpnami(), mpioctl(); ! 601: extern struct inode *mpget(); ! 602: struct fstypsw fstypsw[] = { ! 603: { 0, 0, 0, 0, 0, 0, 0, 0, rnami, smount, 0}, ! 604: { naput, naget, nafree, naupdat, naread, nawrite, natrunc, ! 605: nastat, nanami, namount, 0}, ! 606: { prput, prget, prfree, prupdat, prread, prwrite, prtrunc, ! 607: prstat, prnami, prmount, prioctl}, ! 608: { mpput, mpget, mpfree, mpupdat, mpread, mpwrite, mptrunc, ! 609: mpstat, mpnami, mpmount, mpioctl} ! 610: }; ! 611: int nfstyp = 4; ! 612: int tty_no = 2; /* major device number of /dev/tty special file */ ! 613: int mem_no = 3; /* major device number of memory special file */ ! 614: int stdio_no = 40; /* major device number of stdio special file */ ! 615: ! 616: extern struct streamtab ttyinfo; ! 617: extern struct streamtab rdkinfo; ! 618: extern struct streamtab pkinfo; ! 619: extern struct streamtab msginfo; ! 620: extern struct streamtab dkpinfo; ! 621: extern struct streamtab cdkpinfo; ! 622: extern struct streamtab nttyinfo; ! 623: extern struct streamtab trcinfo; ! 624: extern struct streamtab bufinfo; ! 625: extern struct streamtab rmsginfo; ! 626: extern struct streamtab ipinfo; ! 627: extern struct streamtab tcpinfo; ! 628: extern struct streamtab chrouteinfo; ! 629: extern struct streamtab arpinfo; ! 630: extern struct streamtab udpinfo; ! 631: extern struct streamtab chinfo; ! 632: extern struct streamtab filtinfo; ! 633: extern struct streamtab dumpinfo; ! 634: ! 635: #include "pk.h" ! 636: #include "dkp.h" ! 637: #include "cm.h" ! 638: #include "ntty.h" ! 639: #include "trc.h" ! 640: #include "bf.h" ! 641: #include "inet.h" ! 642: #include "chroute.h" ! 643: #include "arp.h" ! 644: #include "udp.h" ! 645: #include "ch.h" ! 646: #include "filter.h" ! 647: #include "dumpld.h" ! 648: ! 649: struct streamtab *streamtab[] = { ! 650: &ttyinfo, /* 0 */ ! 651: #if NDKP > 0 ! 652: &cdkpinfo, /* 1 */ ! 653: #else ! 654: NULL, ! 655: #endif ! 656: #if NCM > 0 ! 657: &rdkinfo, /* 2 */ ! 658: #else ! 659: NULL, ! 660: #endif ! 661: #if NPK > 0 ! 662: &pkinfo, /* 3 */ ! 663: #else ! 664: NULL, ! 665: #endif ! 666: &msginfo, /* 4 */ ! 667: #if NDKP > 0 ! 668: &dkpinfo, /* 5 */ ! 669: #else ! 670: NULL, ! 671: #endif ! 672: #if NNTTY > 0 ! 673: &nttyinfo, /* 6 */ ! 674: #else ! 675: NULL, ! 676: #endif ! 677: #if NBF > 0 ! 678: &bufinfo, /* 7 */ ! 679: #else ! 680: NULL, ! 681: #endif ! 682: #if NTRC > 0 ! 683: &trcinfo, /* 8 */ ! 684: #else ! 685: NULL, ! 686: #endif ! 687: &rmsginfo, /* 9 */ ! 688: #if NINET > 0 ! 689: &ipinfo, /* 10 */ ! 690: &tcpinfo, /* 11 */ ! 691: #else ! 692: NULL, ! 693: NULL, ! 694: #endif ! 695: #if NCHROUTE > 0 ! 696: &chrouteinfo, /* 12 */ ! 697: #else ! 698: NULL, ! 699: #endif ! 700: #if NARP > 0 ! 701: &arpinfo, /* 13 */ ! 702: #else ! 703: NULL, ! 704: #endif ! 705: #if NUDP > 0 ! 706: &udpinfo, /* 14 */ ! 707: #else ! 708: NULL, ! 709: #endif ! 710: #if NCH > 0 ! 711: &chinfo, /* 15 */ ! 712: #else ! 713: NULL, ! 714: #endif ! 715: #if NFILTER > 0 ! 716: &filtinfo, /* 16 */ ! 717: #else ! 718: NULL, ! 719: #endif ! 720: #if NDUMPLD > 0 ! 721: &dumpinfo, /* 17 */ ! 722: #else ! 723: NULL, ! 724: #endif ! 725: }; ! 726: ! 727: int nstream = sizeof(streamtab)/sizeof(struct streamtab *); ! 728: ! 729: struct buf bfreelist[BQUEUES]; /* buffer chain headers */ ! 730: struct buf bswlist; /* free list of swap headers */ ! 731: struct buf *bclnlist; /* header for list of cleaned pages */ ! 732: struct acct acctbuf; ! 733: struct inode *acctp; ! 734: ! 735: /* ! 736: * Swapdev is a fake device implemented ! 737: * in sw.c used only internally to get to swstrategy. ! 738: * It cannot be provided to the users, because the ! 739: * swstrategy routine munches the b_dev and b_blkno entries ! 740: * before calling the appropriate driver. This would horribly ! 741: * confuse, e.g. the hashing routines. Instead, /dev/drum is ! 742: * provided as a character (raw) device. ! 743: */ ! 744: dev_t swapdev = makedev(4, 0); ! 745: ! 746: extern struct user u; ! 747: ! 748: /* ! 749: * Fetchable stream parameters ! 750: */ ! 751: int Nqueue = NQUEUE; ! 752: int Nstream = NSTREAM; ! 753: int Nblk64 = NBLK64; ! 754: int Nblk16 = NBLK16; ! 755: int Nblk4 = NBLK4; ! 756: #ifndef NBLKBIG ! 757: #define NBLKBIG 0 ! 758: #endif ! 759: int Nblkbig = NBLKBIG; ! 760: int Nblock = (NBLKBIG+NBLK64+NBLK16+NBLK4);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.