|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1993-1989 Carnegie Mellon University ! 4: * All Rights Reserved. ! 5: * ! 6: * Permission to use, copy, modify and distribute this software and its ! 7: * documentation is hereby granted, provided that both the copyright ! 8: * notice and this permission notice appear in all copies of the ! 9: * software, derivative works or modified versions, and any portions ! 10: * thereof, and that both notices appear in supporting documentation. ! 11: * ! 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 15: * ! 16: * Carnegie Mellon requests users of this software to return to ! 17: * ! 18: * Software Distribution Coordinator or [email protected] ! 19: * School of Computer Science ! 20: * Carnegie Mellon University ! 21: * Pittsburgh PA 15213-3890 ! 22: * ! 23: * any improvements or extensions that they make and grant Carnegie Mellon ! 24: * the rights to redistribute these changes. ! 25: */ ! 26: /* ! 27: * Device switch for i386 AT bus. ! 28: */ ! 29: ! 30: #include <mach/machine/vm_types.h> ! 31: #include <device/conf.h> ! 32: ! 33: extern vm_offset_t block_io_mmap(); ! 34: ! 35: extern int timeopen(), timeclose(); ! 36: extern vm_offset_t timemmap(); ! 37: #define timename "time" ! 38: ! 39: #include <hd.h> ! 40: #if NHD > 0 ! 41: extern int hdopen(), hdclose(), hdread(), hdwrite(); ! 42: extern int hdgetstat(), hdsetstat(), hddevinfo(); ! 43: #define hdname "hd" ! 44: ! 45: #if 0 ! 46: extern int pchdopen(),pchdread(),pchdwrite(),pchdgetstat(),pchdsetstat(); ! 47: #define pchdname "pchd" ! 48: #endif ! 49: ! 50: #endif NHD > 0 ! 51: ! 52: #include <aha.h> ! 53: #if NAHA > 0 ! 54: int rz_open(), rz_close(), rz_read(), rz_write(); ! 55: int rz_get_status(), rz_set_status(), rz_devinfo(); ! 56: int cd_open(), cd_close(), cd_read(), cd_write(); ! 57: #define rzname "sd" ! 58: #define tzname "st" ! 59: #define scname "sc" /* processors */ ! 60: #define cdname "cd_audio" /* CD-ROM DA */ ! 61: ! 62: #endif /*NAHA > 0*/ ! 63: ! 64: #include <fd.h> ! 65: #if NFD > 0 ! 66: extern int fdopen(), fdclose(), fdread(), fdwrite(); ! 67: extern int fdgetstat(), fdsetstat(), fddevinfo(); ! 68: #define fdname "fd" ! 69: #endif NFD > 0 ! 70: ! 71: #include <wt.h> ! 72: #if NWT > 0 ! 73: extern int wtopen(), wtread(), wtwrite(), wtclose(); ! 74: #define wtname "wt" ! 75: #endif NWT > 0 ! 76: ! 77: #include <pc586.h> ! 78: #if NPC586 > 0 ! 79: extern int pc586open(), pc586output(), pc586getstat(), pc586setstat(), ! 80: pc586setinput(); ! 81: #define pc586name "pc" ! 82: #endif NPC586 > 0 ! 83: ! 84: #include <ne.h> ! 85: #if NNE > 0 ! 86: extern int neopen(), neoutput(), negetstat(), nesetstat(), nesetinput(); ! 87: #ifdef FIPC ! 88: extern int nefoutput(); ! 89: #endif /* FIPC */ ! 90: #define nename "ne" ! 91: #endif NNE > 0 ! 92: ! 93: #include <ns8390.h> ! 94: #if NNS8390 > 0 ! 95: extern int wd8003open(), eliiopen(); ! 96: extern int ns8390output(), ns8390getstat(), ns8390setstat(), ! 97: ns8390setinput(); ! 98: #define ns8390wdname "wd" ! 99: #define ns8390elname "el" ! 100: #endif NNS8390 > 0 ! 101: ! 102: #include <at3c501.h> ! 103: #if NAT3C501 > 0 ! 104: extern int at3c501open(), at3c501output(), ! 105: at3c501getstat(), at3c501setstat(), ! 106: at3c501setinput(); ! 107: #define at3c501name "et" ! 108: #endif NAT3C501 > 0 ! 109: ! 110: #include <ul.h> ! 111: #if NUL > 0 ! 112: extern int ulopen(), uloutput(), ulgetstat(), ulsetstat(), ! 113: ulsetinput(); ! 114: #define ulname "ul" ! 115: #endif NUL > 0 ! 116: ! 117: #include <wd.h> ! 118: #if NWD > 0 ! 119: extern int wdopen(), wdoutput(), wdgetstat(), wdsetstat(), ! 120: wdsetinput(); ! 121: #define wdname "wd" ! 122: #endif NWD > 0 ! 123: ! 124: #include <hpp.h> ! 125: #if NHPP > 0 ! 126: extern int hppopen(), hppoutput(), hppgetstat(), hppsetstat(), ! 127: hppsetinput(); ! 128: #define hppname "hpp" ! 129: #endif /* NHPP > 0 */ ! 130: ! 131: #include <par.h> ! 132: #if NPAR > 0 ! 133: extern int paropen(), paroutput(), pargetstat(), parsetstat(), ! 134: parsetinput(); ! 135: #define parname "par" ! 136: #endif NPAR > 0 ! 137: ! 138: #include <de6c.h> ! 139: #if NDE6C > 0 ! 140: extern int de6copen(), de6coutput(), de6cgetstat(), de6csetstat(), ! 141: de6csetinput(); ! 142: #define de6cname "de" ! 143: #endif NDE6C > 0 ! 144: ! 145: extern int kdopen(), kdclose(), kdread(), kdwrite(); ! 146: extern int kdgetstat(), kdsetstat(), kdportdeath(); ! 147: extern vm_offset_t kdmmap(); ! 148: #define kdname "kd" ! 149: ! 150: #include <com.h> ! 151: #if NCOM > 0 ! 152: extern int comopen(), comclose(), comread(), comwrite(); ! 153: extern int comgetstat(), comsetstat(), comportdeath(); ! 154: #define comname "com" ! 155: #endif NCOM > 0 ! 156: ! 157: #include <lpr.h> ! 158: #if NLPR > 0 ! 159: extern int lpropen(), lprclose(), lprread(), lprwrite(); ! 160: extern int lprgetstat(), lprsetstat(), lprportdeath(); ! 161: #define lprname "lpr" ! 162: #endif NLPR > 0 ! 163: ! 164: #include <blit.h> ! 165: #if NBLIT > 0 ! 166: extern int blitopen(), blitclose(), blit_get_stat(); ! 167: extern vm_offset_t blitmmap(); ! 168: #define blitname "blit" ! 169: ! 170: extern int mouseinit(), mouseopen(), mouseclose(); ! 171: extern int mouseioctl(), mouseselect(), mouseread(); ! 172: #endif ! 173: ! 174: extern int kbdopen(), kbdclose(), kbdread(); ! 175: extern int kbdgetstat(), kbdsetstat(); ! 176: #define kbdname "kbd" ! 177: ! 178: extern int mouseopen(), mouseclose(), mouseread(); ! 179: #define mousename "mouse" ! 180: ! 181: extern int ioplopen(), ioplclose(); ! 182: extern vm_offset_t ioplmmap(); ! 183: #define ioplname "iopl" ! 184: ! 185: /* ! 186: * List of devices - console must be at slot 0 ! 187: */ ! 188: struct dev_ops dev_name_list[] = ! 189: { ! 190: /*name, open, close, read, ! 191: write, getstat, setstat, mmap, ! 192: async_in, reset, port_death, subdev, ! 193: dev_info */ ! 194: ! 195: /* We don't assign a console here, when we find one via ! 196: cninit() we stick something appropriate here through the ! 197: indirect list */ ! 198: { "cn", nulldev, nulldev, nulldev, ! 199: nulldev, nulldev, nulldev, nulldev, ! 200: nodev, nulldev, nulldev, 0, ! 201: nodev }, ! 202: ! 203: { kdname, kdopen, kdclose, kdread, ! 204: kdwrite, kdgetstat, kdsetstat, kdmmap, ! 205: nodev, nulldev, kdportdeath, 0, ! 206: nodev }, ! 207: ! 208: { timename, timeopen, timeclose, nulldev, ! 209: nulldev, nulldev, nulldev, timemmap, ! 210: nodev, nulldev, nulldev, 0, ! 211: nodev }, ! 212: ! 213: #ifndef LINUX_DEV ! 214: #if NHD > 0 ! 215: { hdname, hdopen, hdclose, hdread, ! 216: hdwrite, hdgetstat, hdsetstat, nomap, ! 217: nodev, nulldev, nulldev, 1024, ! 218: hddevinfo }, ! 219: #endif NHD > 0 ! 220: ! 221: #if NAHA > 0 ! 222: { rzname, rz_open, rz_close, rz_read, ! 223: rz_write, rz_get_status, rz_set_status, nomap, ! 224: nodev, nulldev, nulldev, 1024, /* 8 */ ! 225: rz_devinfo }, ! 226: ! 227: { tzname, rz_open, rz_close, rz_read, ! 228: rz_write, rz_get_status, rz_set_status, nomap, ! 229: nodev, nulldev, nulldev, 8, ! 230: nodev }, ! 231: ! 232: { cdname, cd_open, cd_close, cd_read, ! 233: cd_write, nodev, nodev, nomap, ! 234: nodev, nulldev, nulldev, 8, ! 235: nodev }, ! 236: ! 237: { scname, rz_open, rz_close, rz_read, ! 238: rz_write, rz_get_status, rz_set_status, nomap, ! 239: nodev, nulldev, nulldev, 8, ! 240: nodev }, ! 241: ! 242: #endif /*NAHA > 0*/ ! 243: ! 244: #if NFD > 0 ! 245: { fdname, fdopen, fdclose, fdread, ! 246: fdwrite, fdgetstat, fdsetstat, nomap, ! 247: nodev, nulldev, nulldev, 64, ! 248: fddevinfo }, ! 249: #endif NFD > 0 ! 250: ! 251: #if NWT > 0 ! 252: { wtname, wtopen, wtclose, wtread, ! 253: wtwrite, nulldev, nulldev, nomap, ! 254: nodev, nulldev, nulldev, 0, ! 255: nodev }, ! 256: #endif NWT > 0 ! 257: ! 258: #if NPC586 > 0 ! 259: { pc586name, pc586open, nulldev, nulldev, ! 260: pc586output, pc586getstat, pc586setstat, nomap, ! 261: pc586setinput,nulldev, nulldev, 0, ! 262: nodev }, ! 263: #endif ! 264: ! 265: #if NNE > 0 ! 266: { nename, neopen, nulldev, nulldev, ! 267: neoutput, negetstat, nesetstat, nulldev, ! 268: #ifdef FIPC ! 269: nesetinput, nulldev, nefoutput, 0, ! 270: #else ! 271: nesetinput, nulldev, nulldev, 0, ! 272: #endif /* FIPC */ ! 273: nodev }, ! 274: #endif ! 275: ! 276: #if NAT3C501 > 0 ! 277: { at3c501name, at3c501open, nulldev, nulldev, ! 278: at3c501output,at3c501getstat, at3c501setstat, nomap, ! 279: at3c501setinput, nulldev, nulldev, 0, ! 280: nodev }, ! 281: #endif ! 282: ! 283: #if NNS8390 > 0 ! 284: { ns8390wdname, wd8003open, nulldev, nulldev, ! 285: ns8390output, ns8390getstat, ns8390setstat, nomap, ! 286: ns8390setinput, nulldev, nulldev, 0, ! 287: nodev }, ! 288: ! 289: { ns8390elname, eliiopen, nulldev, nulldev, ! 290: ns8390output, ns8390getstat, ns8390setstat, nomap, ! 291: ns8390setinput, nulldev, nulldev, 0, ! 292: nodev }, ! 293: #endif ! 294: ! 295: #if NUL > 0 ! 296: { ulname, ulopen, nulldev, nulldev, ! 297: uloutput, ulgetstat, ulsetstat, nulldev, ! 298: ulsetinput, nulldev, nulldev, 0, ! 299: nodev }, ! 300: #endif ! 301: ! 302: #if NWD > 0 ! 303: { wdname, wdopen, nulldev, nulldev, ! 304: wdoutput, wdgetstat, wdsetstat, nulldev, ! 305: wdsetinput, nulldev, nulldev, 0, ! 306: nodev }, ! 307: #endif ! 308: ! 309: #if NHPP > 0 ! 310: { hppname, hppopen, nulldev, nulldev, ! 311: hppoutput, hppgetstat, hppsetstat, nulldev, ! 312: hppsetinput, nulldev, nulldev, 0, ! 313: nodev }, ! 314: #endif ! 315: ! 316: #if NPAR > 0 ! 317: { parname, paropen, nulldev, nulldev, ! 318: paroutput, pargetstat, parsetstat, nomap, ! 319: parsetinput, nulldev, nulldev, 0, ! 320: nodev }, ! 321: #endif ! 322: ! 323: #if NDE6C > 0 ! 324: { de6cname, de6copen, nulldev, nulldev, ! 325: de6coutput, de6cgetstat, de6csetstat, nomap, ! 326: de6csetinput, nulldev, nulldev, 0, ! 327: nodev }, ! 328: #endif ! 329: #endif /* ! LINUX_DEV */ ! 330: ! 331: #if NCOM > 0 ! 332: { comname, comopen, comclose, comread, ! 333: comwrite, comgetstat, comsetstat, nomap, ! 334: nodev, nulldev, comportdeath, 0, ! 335: nodev }, ! 336: #endif ! 337: ! 338: #ifndef LINUX_DEV ! 339: #if NLPR > 0 ! 340: { lprname, lpropen, lprclose, lprread, ! 341: lprwrite, lprgetstat, lprsetstat, nomap, ! 342: nodev, nulldev, lprportdeath, 0, ! 343: nodev }, ! 344: #endif ! 345: #endif /* ! LINUX_DEV */ ! 346: ! 347: #if NBLIT > 0 ! 348: { blitname, blitopen, blitclose, nodev, ! 349: nodev, blit_get_stat, nodev, blitmmap, ! 350: nodev, nodev, nodev, 0, ! 351: nodev }, ! 352: #endif ! 353: ! 354: { mousename, mouseopen, mouseclose, mouseread, ! 355: nodev, nulldev, nulldev, nomap, ! 356: nodev, nulldev, nulldev, 0, ! 357: nodev }, ! 358: ! 359: { kbdname, kbdopen, kbdclose, kbdread, ! 360: nodev, kbdgetstat, kbdsetstat, nomap, ! 361: nodev, nulldev, nulldev, 0, ! 362: nodev }, ! 363: ! 364: { ioplname, ioplopen, ioplclose, nodev, ! 365: nodev, nodev, nodev, ioplmmap, ! 366: nodev, nulldev, nulldev, 0, ! 367: nodev }, ! 368: ! 369: #if 0 ! 370: #if NHD > 0 ! 371: { pchdname, pchdopen, hdclose, pchdread, ! 372: pchdwrite, pchdgetstat, pchdsetstat, nomap, ! 373: nodev, nulldev, nulldev, 16, ! 374: hddevinfo }, ! 375: #endif NHD > 0 ! 376: #endif ! 377: ! 378: #if 0 ! 379: #if NHD > 0 ! 380: { hdname, hdopen, hdclose, hdread, ! 381: hdwrite, hdgetstat, hdsetstat, nomap, ! 382: nodev, nulldev, nulldev, 16, ! 383: hddevinfo }, ! 384: #endif NHD > 0 ! 385: #endif 0 /* Kevin doesn't know why this was here. */ ! 386: ! 387: }; ! 388: int dev_name_count = sizeof(dev_name_list)/sizeof(dev_name_list[0]); ! 389: ! 390: /* ! 391: * Indirect list. ! 392: */ ! 393: struct dev_indirect dev_indirect_list[] = { ! 394: ! 395: /* console */ ! 396: { "console", &dev_name_list[0], 0 } ! 397: }; ! 398: int dev_indirect_count = sizeof(dev_indirect_list) ! 399: / sizeof(dev_indirect_list[0]);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.