|
|
1.1.1.3 ! root 1: /* 1.1 root 2: * Mach Operating System 3: * Copyright (c) 1993-1989 Carnegie Mellon University 4: * All Rights Reserved. 1.1.1.3 ! root 5: * 1.1 root 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. 1.1.1.3 ! root 11: * 1.1 root 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. 1.1.1.3 ! root 15: * 1.1 root 16: * Carnegie Mellon requests users of this software to return to 1.1.1.3 ! root 17: * 1.1 root 18: * Software Distribution Coordinator or [email protected] 19: * School of Computer Science 20: * Carnegie Mellon University 21: * Pittsburgh PA 15213-3890 1.1.1.3 ! root 22: * 1.1 root 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: 1.1.1.3 ! root 50: #endif /* NHD > 0 */ 1.1 root 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" 1.1.1.3 ! root 69: #endif /* NFD > 0 */ 1.1 root 70: 71: #include <wt.h> 72: #if NWT > 0 73: extern int wtopen(), wtread(), wtwrite(), wtclose(); 74: #define wtname "wt" 1.1.1.3 ! root 75: #endif /* NWT > 0 */ 1.1 root 76: 77: #include <pc586.h> 78: #if NPC586 > 0 79: extern int pc586open(), pc586output(), pc586getstat(), pc586setstat(), 80: pc586setinput(); 81: #define pc586name "pc" 1.1.1.3 ! root 82: #endif /* NPC586 > 0 */ 1.1 root 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" 1.1.1.3 ! root 91: #endif /* NNE > 0 */ 1.1 root 92: 93: #include <ns8390.h> 94: #if NNS8390 > 0 95: extern int wd8003open(), eliiopen(); 1.1.1.3 ! root 96: extern int ns8390output(), ns8390getstat(), ns8390setstat(), 1.1 root 97: ns8390setinput(); 98: #define ns8390wdname "wd" 99: #define ns8390elname "el" 1.1.1.3 ! root 100: #endif /* NNS8390 > 0 */ 1.1 root 101: 102: #include <at3c501.h> 103: #if NAT3C501 > 0 104: extern int at3c501open(), at3c501output(), 105: at3c501getstat(), at3c501setstat(), 106: at3c501setinput(); 107: #define at3c501name "et" 1.1.1.3 ! root 108: #endif /* NAT3C501 > 0 */ 1.1 root 109: 110: #include <ul.h> 111: #if NUL > 0 112: extern int ulopen(), uloutput(), ulgetstat(), ulsetstat(), 113: ulsetinput(); 114: #define ulname "ul" 1.1.1.3 ! root 115: #endif /* NUL > 0 */ 1.1 root 116: 117: #include <wd.h> 118: #if NWD > 0 119: extern int wdopen(), wdoutput(), wdgetstat(), wdsetstat(), 120: wdsetinput(); 121: #define wdname "wd" 1.1.1.3 ! root 122: #endif /* NWD > 0 */ 1.1 root 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" 1.1.1.3 ! root 136: #endif /* NPAR > 0 */ 1.1 root 137: 138: #include <de6c.h> 139: #if NDE6C > 0 140: extern int de6copen(), de6coutput(), de6cgetstat(), de6csetstat(), 141: de6csetinput(); 142: #define de6cname "de" 1.1.1.3 ! root 143: #endif /* NDE6C > 0 */ 1.1 root 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" 1.1.1.3 ! root 155: #endif /* NCOM > 0 */ 1.1 root 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" 1.1.1.3 ! root 162: #endif /* NLPR > 0 */ 1.1 root 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: 1.1.1.2 root 178: extern int mouseopen(), mouseclose(), mouseread(), mousegetstat(); 1.1 root 179: #define mousename "mouse" 180: 181: extern int ioplopen(), ioplclose(); 182: extern vm_offset_t ioplmmap(); 183: #define ioplname "iopl" 184: 1.1.1.2 root 185: extern int kmsgopen(), kmsgclose(), kmsgread(), kmsggetstat(); 186: #define kmsgname "kmsg" 187: 1.1 root 188: /* 189: * List of devices - console must be at slot 0 190: */ 191: struct dev_ops dev_name_list[] = 192: { 193: /*name, open, close, read, 194: write, getstat, setstat, mmap, 195: async_in, reset, port_death, subdev, 196: dev_info */ 197: 198: /* We don't assign a console here, when we find one via 199: cninit() we stick something appropriate here through the 200: indirect list */ 201: { "cn", nulldev, nulldev, nulldev, 202: nulldev, nulldev, nulldev, nulldev, 203: nodev, nulldev, nulldev, 0, 204: nodev }, 205: 206: { kdname, kdopen, kdclose, kdread, 207: kdwrite, kdgetstat, kdsetstat, kdmmap, 208: nodev, nulldev, kdportdeath, 0, 209: nodev }, 210: 211: { timename, timeopen, timeclose, nulldev, 212: nulldev, nulldev, nulldev, timemmap, 213: nodev, nulldev, nulldev, 0, 214: nodev }, 215: 216: #ifndef LINUX_DEV 217: #if NHD > 0 218: { hdname, hdopen, hdclose, hdread, 219: hdwrite, hdgetstat, hdsetstat, nomap, 220: nodev, nulldev, nulldev, 1024, 221: hddevinfo }, 1.1.1.3 ! root 222: #endif /* NHD > 0 */ 1.1 root 223: 224: #if NAHA > 0 225: { rzname, rz_open, rz_close, rz_read, 226: rz_write, rz_get_status, rz_set_status, nomap, 227: nodev, nulldev, nulldev, 1024, /* 8 */ 228: rz_devinfo }, 229: 230: { tzname, rz_open, rz_close, rz_read, 231: rz_write, rz_get_status, rz_set_status, nomap, 232: nodev, nulldev, nulldev, 8, 233: nodev }, 234: 235: { cdname, cd_open, cd_close, cd_read, 236: cd_write, nodev, nodev, nomap, 237: nodev, nulldev, nulldev, 8, 238: nodev }, 239: 240: { scname, rz_open, rz_close, rz_read, 241: rz_write, rz_get_status, rz_set_status, nomap, 242: nodev, nulldev, nulldev, 8, 243: nodev }, 244: 245: #endif /*NAHA > 0*/ 246: 247: #if NFD > 0 248: { fdname, fdopen, fdclose, fdread, 249: fdwrite, fdgetstat, fdsetstat, nomap, 250: nodev, nulldev, nulldev, 64, 251: fddevinfo }, 1.1.1.3 ! root 252: #endif /* NFD > 0 */ 1.1 root 253: 254: #if NWT > 0 255: { wtname, wtopen, wtclose, wtread, 256: wtwrite, nulldev, nulldev, nomap, 257: nodev, nulldev, nulldev, 0, 258: nodev }, 1.1.1.3 ! root 259: #endif /* NWT > 0 */ 1.1 root 260: 261: #if NPC586 > 0 262: { pc586name, pc586open, nulldev, nulldev, 263: pc586output, pc586getstat, pc586setstat, nomap, 264: pc586setinput,nulldev, nulldev, 0, 265: nodev }, 266: #endif 267: 268: #if NNE > 0 269: { nename, neopen, nulldev, nulldev, 270: neoutput, negetstat, nesetstat, nulldev, 271: #ifdef FIPC 272: nesetinput, nulldev, nefoutput, 0, 273: #else 274: nesetinput, nulldev, nulldev, 0, 275: #endif /* FIPC */ 276: nodev }, 277: #endif 278: 279: #if NAT3C501 > 0 280: { at3c501name, at3c501open, nulldev, nulldev, 281: at3c501output,at3c501getstat, at3c501setstat, nomap, 282: at3c501setinput, nulldev, nulldev, 0, 283: nodev }, 284: #endif 285: 286: #if NNS8390 > 0 287: { ns8390wdname, wd8003open, nulldev, nulldev, 288: ns8390output, ns8390getstat, ns8390setstat, nomap, 289: ns8390setinput, nulldev, nulldev, 0, 290: nodev }, 291: 292: { ns8390elname, eliiopen, nulldev, nulldev, 293: ns8390output, ns8390getstat, ns8390setstat, nomap, 294: ns8390setinput, nulldev, nulldev, 0, 295: nodev }, 296: #endif 297: 298: #if NUL > 0 299: { ulname, ulopen, nulldev, nulldev, 300: uloutput, ulgetstat, ulsetstat, nulldev, 301: ulsetinput, nulldev, nulldev, 0, 302: nodev }, 303: #endif 304: 305: #if NWD > 0 306: { wdname, wdopen, nulldev, nulldev, 307: wdoutput, wdgetstat, wdsetstat, nulldev, 308: wdsetinput, nulldev, nulldev, 0, 309: nodev }, 310: #endif 311: 312: #if NHPP > 0 313: { hppname, hppopen, nulldev, nulldev, 314: hppoutput, hppgetstat, hppsetstat, nulldev, 315: hppsetinput, nulldev, nulldev, 0, 316: nodev }, 317: #endif 318: 319: #if NPAR > 0 320: { parname, paropen, nulldev, nulldev, 321: paroutput, pargetstat, parsetstat, nomap, 322: parsetinput, nulldev, nulldev, 0, 323: nodev }, 324: #endif 325: 326: #if NDE6C > 0 327: { de6cname, de6copen, nulldev, nulldev, 328: de6coutput, de6cgetstat, de6csetstat, nomap, 329: de6csetinput, nulldev, nulldev, 0, 330: nodev }, 331: #endif 332: #endif /* ! LINUX_DEV */ 333: 1.1.1.3 ! root 334: #if NCOM > 0 1.1 root 335: { comname, comopen, comclose, comread, 336: comwrite, comgetstat, comsetstat, nomap, 337: nodev, nulldev, comportdeath, 0, 338: nodev }, 339: #endif 340: 1.1.1.2 root 341: #ifdef MACH_LPR 1.1 root 342: { lprname, lpropen, lprclose, lprread, 343: lprwrite, lprgetstat, lprsetstat, nomap, 344: nodev, nulldev, lprportdeath, 0, 345: nodev }, 346: #endif 347: 348: #if NBLIT > 0 349: { blitname, blitopen, blitclose, nodev, 350: nodev, blit_get_stat, nodev, blitmmap, 351: nodev, nodev, nodev, 0, 352: nodev }, 353: #endif 354: 355: { mousename, mouseopen, mouseclose, mouseread, 1.1.1.2 root 356: nodev, mousegetstat, nulldev, nomap, 1.1 root 357: nodev, nulldev, nulldev, 0, 358: nodev }, 359: 360: { kbdname, kbdopen, kbdclose, kbdread, 361: nodev, kbdgetstat, kbdsetstat, nomap, 362: nodev, nulldev, nulldev, 0, 363: nodev }, 364: 365: { ioplname, ioplopen, ioplclose, nodev, 366: nodev, nodev, nodev, ioplmmap, 367: nodev, nulldev, nulldev, 0, 368: nodev }, 369: 370: #if 0 371: #if NHD > 0 372: { pchdname, pchdopen, hdclose, pchdread, 373: pchdwrite, pchdgetstat, pchdsetstat, nomap, 374: nodev, nulldev, nulldev, 16, 375: hddevinfo }, 1.1.1.3 ! root 376: #endif /* NHD > 0 */ 1.1 root 377: #endif 378: 379: #if 0 380: #if NHD > 0 381: { hdname, hdopen, hdclose, hdread, 382: hdwrite, hdgetstat, hdsetstat, nomap, 383: nodev, nulldev, nulldev, 16, 384: hddevinfo }, 1.1.1.3 ! root 385: #endif /* NHD > 0 */ ! 386: #endif /* Kevin doesn't know why this was here. */ 1.1 root 387: 1.1.1.2 root 388: #ifdef MACH_KMSG 389: { kmsgname, kmsgopen, kmsgclose, kmsgread, 390: nodev, kmsggetstat, nodev, nomap, 391: nodev, nulldev, nulldev, 0, 392: nodev }, 393: #endif 394: 1.1 root 395: }; 396: int dev_name_count = sizeof(dev_name_list)/sizeof(dev_name_list[0]); 397: 398: /* 399: * Indirect list. 400: */ 401: struct dev_indirect dev_indirect_list[] = { 402: 403: /* console */ 404: { "console", &dev_name_list[0], 0 } 405: }; 406: int dev_indirect_count = sizeof(dev_indirect_list) 407: / sizeof(dev_indirect_list[0]);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.