Annotation of Gnu-Mach/i386/i386at/autoconf.c, revision 1.1

1.1     ! root        1: /* 
        !             2:  * Mach Operating System
        !             3:  * Copyright (c) 1993,1992,1991,1990,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: #ifdef MACH_KERNEL
        !            28: #include <mach_ttd.h>
        !            29: #include <mach/std_types.h>
        !            30: #else  /* MACH_KERNEL */
        !            31: #include <cpus.h>
        !            32: #include <platforms.h>
        !            33: #include <generic.h>
        !            34: #include <sys/param.h>
        !            35: #include <mach/machine.h>
        !            36: #include <machine/cpu.h>
        !            37: #endif /* MACH_KERNEL */
        !            38: #ifdef LINUX_DEV
        !            39: #include <i386/pic.h>
        !            40: #endif
        !            41: #include <i386/ipl.h>
        !            42: #include <chips/busses.h>
        !            43: 
        !            44: /* initialization typecasts */
        !            45: #define        SPL_FIVE        (vm_offset_t)SPL5
        !            46: #define        SPL_SIX         (vm_offset_t)SPL6
        !            47: #define        SPL_TTY         (vm_offset_t)SPLTTY
        !            48: 
        !            49: 
        !            50: #include <hd.h>
        !            51: #if NHD > 0
        !            52: extern struct  bus_driver      hddriver;
        !            53: extern int                     hdintr();
        !            54: #endif /* NHD */
        !            55: 
        !            56: #include <fd.h>
        !            57: #if NFD > 0
        !            58: extern struct  bus_driver      fddriver;
        !            59: extern int                     fdintr();
        !            60: #endif /* NFD */
        !            61: 
        !            62: #include <aha.h>
        !            63: #if NAHA > 0
        !            64: extern struct  bus_driver      aha_driver;
        !            65: extern int                     aha_intr();
        !            66: #endif /* NAHA */
        !            67: 
        !            68: #include <eaha.h>
        !            69: #if NEAHA > 0
        !            70: extern struct  bus_driver      eaha_driver;
        !            71: extern int     eaha_intr();
        !            72: #endif /* NEAHA */
        !            73: 
        !            74: #include <pc586.h>
        !            75: #if NPC586 > 0
        !            76: extern struct  bus_driver      pcdriver;
        !            77: extern int                     pc586intr();
        !            78: #endif /* NPC586 */
        !            79: 
        !            80: #include <ne.h>
        !            81: #if NNE > 0
        !            82: extern  struct  bus_driver      nedriver;
        !            83: extern int                      neintr();
        !            84: #endif NNE
        !            85: 
        !            86: #include <ns8390.h>
        !            87: #if NNS8390 > 0
        !            88: extern struct  bus_driver      ns8390driver;
        !            89: extern int                     ns8390intr();
        !            90: #endif /* NNS8390 */
        !            91: 
        !            92: #include <at3c501.h>
        !            93: #if NAT3C501 > 0
        !            94: extern struct  bus_driver      at3c501driver;
        !            95: extern int                     at3c501intr();
        !            96: #endif /* NAT3C501 */
        !            97: 
        !            98: #include <ul.h>
        !            99: #if NUL > 0
        !           100: extern struct  bus_driver      uldriver;
        !           101: extern int                     ulintr();
        !           102: #endif
        !           103: 
        !           104: #include <wd.h>
        !           105: #if NWD > 0
        !           106: extern struct  bus_driver      wddriver;
        !           107: extern int                     wdintr();
        !           108: #endif
        !           109: 
        !           110: #include <hpp.h>
        !           111: #if NHPP > 0
        !           112: extern struct  bus_driver      hppdriver;
        !           113: extern int                    hppintr();
        !           114: #endif
        !           115: 
        !           116: #include <com.h>
        !           117: #if NCOM > 0
        !           118: extern struct  bus_driver      comdriver;
        !           119: extern int                     comintr();
        !           120: #endif /* NCOM */
        !           121: 
        !           122: #include <lpr.h>
        !           123: #if NLPR > 0
        !           124: extern struct  bus_driver      lprdriver;
        !           125: extern int                     lprintr();
        !           126: #endif /* NLPR */
        !           127: 
        !           128: #include <wt.h>
        !           129: #if NWT > 0
        !           130: extern struct  bus_driver      wtdriver;
        !           131: extern int                     wtintr();
        !           132: #endif /* NWT */
        !           133: 
        !           134: struct bus_ctlr        bus_master_init[] = {
        !           135: 
        !           136: /* driver    name unit intr    address        len phys_address   
        !           137:      adaptor alive flags spl    pic                             */
        !           138: 
        !           139: #ifndef LINUX_DEV
        !           140: #if NHD > 0
        !           141:   {&hddriver, "hdc",  0, hdintr, 0x1f0, 8, 0x1f0,
        !           142:      '?',      0,  0,   SPL_FIVE, 14},
        !           143: 
        !           144:   {&hddriver, "hdc",  1, hdintr, 0x170, 8, 0x170,
        !           145:      '?',      0,  0,   SPL_FIVE, 15},
        !           146: #endif /* NHD > 0 */
        !           147: 
        !           148: #if NAHA > 0
        !           149:   {&aha_driver, "ahac",  0, aha_intr, 0x330, 4, 0x330,
        !           150:      '?',      0,  0,   SPL_FIVE, 11},
        !           151: 
        !           152: #if NAHA > 1
        !           153: 
        !           154:   {&aha_driver, "ahac",  1, aha_intr, 0x234, 4, 0x234,
        !           155:      '?',      0,  0,   SPL_FIVE, 12},
        !           156:   {&aha_driver, "ahac",  1, aha_intr, 0x230, 4, 0x230,
        !           157:      '?',      0,  0,   SPL_FIVE, 12},
        !           158:   {&aha_driver, "ahac",  1, aha_intr, 0x134, 4, 0x134,
        !           159:      '?',      0,  0,   SPL_FIVE, 12},
        !           160:   {&aha_driver, "ahac",  1, aha_intr, 0x130, 4, 0x130,
        !           161:      '?',      0,  0,   SPL_FIVE, 12},
        !           162: 
        !           163: #else
        !           164: 
        !           165:   {&aha_driver, "ahac",  0, aha_intr, 0x334, 4, 0x334,
        !           166:      '?',      0,  0,   SPL_FIVE, 11},
        !           167:   {&aha_driver, "ahac",  0, aha_intr, 0x234, 4, 0x234,
        !           168:      '?',      0,  0,   SPL_FIVE, 11},
        !           169:   {&aha_driver, "ahac",  0, aha_intr, 0x230, 4, 0x230,
        !           170:      '?',      0,  0,   SPL_FIVE, 11},
        !           171:   {&aha_driver, "ahac",  0, aha_intr, 0x134, 4, 0x134,
        !           172:      '?',      0,  0,   SPL_FIVE, 11},
        !           173:   {&aha_driver, "ahac",  0, aha_intr, 0x130, 4, 0x130,
        !           174:      '?',      0,  0,   SPL_FIVE, 11},
        !           175: 
        !           176: #endif /* NAHA > 1 */
        !           177: #endif /* NAHA > 0*/
        !           178: 
        !           179: #if NEAHA > 0
        !           180: {&eaha_driver, "eahac", 0, eaha_intr, 0x0000, 4, 0x0000,
        !           181:      '?',      0,  0,   SPL_FIVE, 12},
        !           182: {&eaha_driver, "eahac", 0, eaha_intr, 0x1000, 4, 0x1000,
        !           183:      '?',      0,  0,   SPL_FIVE, 12},
        !           184: {&eaha_driver, "eahac", 0, eaha_intr, 0x2000, 4, 0x2000,
        !           185:      '?',      0,  0,   SPL_FIVE, 12},
        !           186: {&eaha_driver, "eahac", 0, eaha_intr, 0x3000, 4, 0x3000,
        !           187:      '?',      0,  0,   SPL_FIVE, 12},
        !           188: {&eaha_driver, "eahac", 0, eaha_intr, 0x4000, 4, 0x4000,
        !           189:      '?',      0,  0,   SPL_FIVE, 12},
        !           190: {&eaha_driver, "eahac", 0, eaha_intr, 0x5000, 4, 0x5000,
        !           191:      '?',      0,  0,   SPL_FIVE, 12},
        !           192: {&eaha_driver, "eahac", 0, eaha_intr, 0x6000, 4, 0x6000,
        !           193:      '?',      0,  0,   SPL_FIVE, 12},
        !           194: {&eaha_driver, "eahac", 0, eaha_intr, 0x7000, 4, 0x7000,
        !           195:      '?',      0,  0,   SPL_FIVE, 12},
        !           196: {&eaha_driver, "eahac", 0, eaha_intr, 0x8000, 4, 0x8000,
        !           197:      '?',      0,  0,   SPL_FIVE, 12},
        !           198: {&eaha_driver, "eahac", 0, eaha_intr, 0x9000, 4, 0x9000,
        !           199:      '?',      0,  0,   SPL_FIVE, 12},
        !           200: {&eaha_driver, "eahac", 0, eaha_intr, 0xa000, 4, 0xa000,
        !           201:      '?',      0,  0,   SPL_FIVE, 12},
        !           202: {&eaha_driver, "eahac", 0, eaha_intr, 0xb000, 4, 0xb000,
        !           203:      '?',      0,  0,   SPL_FIVE, 12},
        !           204: {&eaha_driver, "eahac", 0, eaha_intr, 0xc000, 4, 0xc000,
        !           205:      '?',      0,  0,   SPL_FIVE, 12},
        !           206: {&eaha_driver, "eahac", 0, eaha_intr, 0xd000, 4, 0xd000,
        !           207:      '?',      0,  0,   SPL_FIVE, 12},
        !           208: {&eaha_driver, "eahac", 0, eaha_intr, 0xe000, 4, 0xe000,
        !           209:      '?',      0,  0,   SPL_FIVE, 12},
        !           210: {&eaha_driver, "eahac", 0, eaha_intr, 0xf000, 4, 0xf000,
        !           211:      '?',      0,  0,   SPL_FIVE, 12},
        !           212: #endif /* NEAHA > 0 */
        !           213: 
        !           214: #if NFD > 0
        !           215:   {&fddriver, "fdc",  0, fdintr, 0x3f2, 6, 0x3f2,
        !           216:      '?',      0,  0,   SPL_FIVE, 6},
        !           217: 
        !           218:   {&fddriver, "fdc",  1, fdintr, 0x372, 6, 0x372,
        !           219:      '?',      0,  0,   SPL_FIVE, 10},
        !           220: #endif /* NFD > 0 */
        !           221: #endif /* ! LINUX_DEV */
        !           222: 
        !           223:   0
        !           224: };
        !           225: 
        !           226: 
        !           227: struct bus_device      bus_device_init[] = {
        !           228: 
        !           229: /* driver     name unit intr    address       am   phys_address 
        !           230:      adaptor alive ctlr slave flags *mi       *next  sysdep sysdep */
        !           231: 
        !           232: #ifndef LINUX_DEV
        !           233: #if NHD > 0
        !           234:   {&hddriver, "hd", 0, hdintr, 0x104, 8, 0x1f0,
        !           235:      '?',    0,   0,    0,    0,   0,  0,  SPL_FIVE, 14},
        !           236:   {&hddriver, "hd", 1, hdintr, 0x118, 8, 0x1f0,
        !           237:      '?',    0,   0,    1,    0,   0,  0,  SPL_FIVE, 14},
        !           238:   {&hddriver, "hd", 2, hdintr, 0x104, 8, 0x170,  /*??*/
        !           239:      '?',    0,   1,    0,    0,   0,  0,  SPL_FIVE, 15},
        !           240:   {&hddriver, "hd", 3, hdintr, 0x118, 8, 0x170,
        !           241:      '?',    0,   1,    1,    0,   0,  0,  SPL_FIVE, 15},
        !           242: #endif /* NHD > 0 */
        !           243: 
        !           244: #if NAHA > 0
        !           245: { &aha_driver, "rz",   0,  0,  0x0,0,  0,    '?',     0,   0,   0,    0, },
        !           246: { &aha_driver, "rz",   1,  0,  0x0,0,  0,    '?',     0,   0,   1,    0, },
        !           247: { &aha_driver, "rz",   2,  0,  0x0,0,  0,    '?',     0,   0,   2,    0, },
        !           248: { &aha_driver, "rz",   3,  0,  0x0,0,  0,    '?',     0,   0,   3,    0, },
        !           249: { &aha_driver, "rz",   4,  0,  0x0,0,  0,    '?',     0,   0,   4,    0, },
        !           250: { &aha_driver, "rz",   5,  0,  0x0,0,  0,    '?',     0,   0,   5,    0, },
        !           251: { &aha_driver, "rz",   6,  0,  0x0,0,  0,    '?',     0,   0,   6,    0, },
        !           252: { &aha_driver, "rz",   7,  0,  0x0,0,  0,    '?',     0,   0,   7,    0, },
        !           253: 
        !           254: { &aha_driver, "tz",   0,  0,  0x0,0,  0,    '?',     0,   0,   0,    0, },
        !           255: { &aha_driver, "tz",   1,  0,  0x0,0,  0,    '?',     0,   0,   1,    0, },
        !           256: { &aha_driver, "tz",   2,  0,  0x0,0,  0,    '?',     0,   0,   2,    0, },
        !           257: { &aha_driver, "tz",   3,  0,  0x0,0,  0,    '?',     0,   0,   3,    0, },
        !           258: { &aha_driver, "tz",   4,  0,  0x0,0,  0,    '?',     0,   0,   4,    0, },
        !           259: { &aha_driver, "tz",   5,  0,  0x0,0,  0,    '?',     0,   0,   5,    0, },
        !           260: { &aha_driver, "tz",   6,  0,  0x0,0,  0,    '?',     0,   0,   6,    0, },
        !           261: { &aha_driver, "tz",   7,  0,  0x0,0,  0,    '?',     0,   0,   7,    0, },
        !           262: 
        !           263: #if NAHA > 1
        !           264: 
        !           265: { &aha_driver, "rz",   8,  0,  0x0,0,  0,    '?',     0,   1,   0,    0, },
        !           266: { &aha_driver, "rz",   9,  0,  0x0,0,  0,    '?',     0,   1,   1,    0, },
        !           267: { &aha_driver, "rz",  10,  0,  0x0,0,  0,    '?',     0,   1,   2,    0, },
        !           268: { &aha_driver, "rz",  11,  0,  0x0,0,  0,    '?',     0,   1,   3,    0, },
        !           269: { &aha_driver, "rz",  12,  0,  0x0,0,  0,    '?',     0,   1,   4,    0, },
        !           270: { &aha_driver, "rz",  13,  0,  0x0,0,  0,    '?',     0,   1,   5,    0, },
        !           271: { &aha_driver, "rz",  14,  0,  0x0,0,  0,    '?',     0,   1,   6,    0, },
        !           272: { &aha_driver, "rz",  15,  0,  0x0,0,  0,    '?',     0,   1,   7,    0, },
        !           273: 
        !           274: { &aha_driver, "tz",   8,  0,  0x0,0,  0,    '?',     0,   1,   0,    0, },
        !           275: { &aha_driver, "tz",   9,  0,  0x0,0,  0,    '?',     0,   1,   1,    0, },
        !           276: { &aha_driver, "tz",  10,  0,  0x0,0,  0,    '?',     0,   1,   2,    0, },
        !           277: { &aha_driver, "tz",  11,  0,  0x0,0,  0,    '?',     0,   1,   3,    0, },
        !           278: { &aha_driver, "tz",  12,  0,  0x0,0,  0,    '?',     0,   1,   4,    0, },
        !           279: { &aha_driver, "tz",  13,  0,  0x0,0,  0,    '?',     0,   1,   5,    0, },
        !           280: { &aha_driver, "tz",  14,  0,  0x0,0,  0,    '?',     0,   1,   6,    0, },
        !           281: { &aha_driver, "tz",  15,  0,  0x0,0,  0,    '?',     0,   1,   7,    0, },
        !           282: #endif /* NAHA > 1 */
        !           283: #endif /* NAHA > 0 */
        !           284: 
        !           285: #if NEAHA > 0
        !           286: { &eaha_driver,        "rz",   0,  0,  0x0,0,  0,    '?',     0,   0,   0,    0, },
        !           287: { &eaha_driver,        "rz",   1,  0,  0x0,0,  0,    '?',     0,   0,   1,    0, },
        !           288: { &eaha_driver,        "rz",   2,  0,  0x0,0,  0,    '?',     0,   0,   2,    0, },
        !           289: { &eaha_driver,        "rz",   3,  0,  0x0,0,  0,    '?',     0,   0,   3,    0, },
        !           290: { &eaha_driver,        "rz",   4,  0,  0x0,0,  0,    '?',     0,   0,   4,    0, },
        !           291: { &eaha_driver,        "rz",   5,  0,  0x0,0,  0,    '?',     0,   0,   5,    0, },
        !           292: { &eaha_driver,        "rz",   6,  0,  0x0,0,  0,    '?',     0,   0,   6,    0, },
        !           293: { &eaha_driver,        "rz",   7,  0,  0x0,0,  0,    '?',     0,   0,   7,    0, },
        !           294: 
        !           295: { &eaha_driver,        "tz",   0,  0,  0x0,0,  0,    '?',     0,   0,   0,    0, },
        !           296: { &eaha_driver,        "tz",   1,  0,  0x0,0,  0,    '?',     0,   0,   1,    0, },
        !           297: { &eaha_driver,        "tz",   2,  0,  0x0,0,  0,    '?',     0,   0,   2,    0, },
        !           298: { &eaha_driver,        "tz",   3,  0,  0x0,0,  0,    '?',     0,   0,   3,    0, },
        !           299: { &eaha_driver,        "tz",   4,  0,  0x0,0,  0,    '?',     0,   0,   4,    0, },
        !           300: { &eaha_driver,        "tz",   5,  0,  0x0,0,  0,    '?',     0,   0,   5,    0, },
        !           301: { &eaha_driver,        "tz",   6,  0,  0x0,0,  0,    '?',     0,   0,   6,    0, },
        !           302: { &eaha_driver,        "tz",   7,  0,  0x0,0,  0,    '?',     0,   0,   7,    0, },
        !           303: #endif /* NEAHA > 0*/
        !           304: 
        !           305: #if NFD > 0
        !           306:   {&fddriver, "fd", 0, fdintr, 0x3f2, 6, 0x3f2,
        !           307:      '?',    0,   0,    0,    0,   0,  0,   SPL_FIVE, 6},
        !           308:   {&fddriver, "fd", 1, fdintr, 0x3f2, 6, 0x3f2,
        !           309:      '?',    0,   0,    1,    0,   0,  0,   SPL_FIVE, 6},
        !           310: 
        !           311:   {&fddriver, "fd", 2, fdintr, 0x372, 6, 0x372,
        !           312:      '?',    0,   1,    0,    0,   0,  0,   SPL_FIVE, 10},
        !           313:   {&fddriver, "fd", 3, fdintr, 0x372, 6, 0x372,
        !           314:      '?',    0,   1,    1,    0,   0,  0,   SPL_FIVE, 10},
        !           315: #endif /* NFD > 0 */
        !           316: 
        !           317: #if NPC586 > 0
        !           318:   /* For MACH Default */
        !           319:   {&pcdriver, "pc", 0, pc586intr, 0xd0000, 0, 0xd0000,
        !           320:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_FIVE, 9},
        !           321:   /* For Factory Default */
        !           322:   {&pcdriver, "pc", 0, pc586intr, 0xc0000, 0, 0xc0000,
        !           323:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_FIVE, 5},
        !           324:   /* For what Intel Ships */
        !           325:   {&pcdriver, "pc", 0, pc586intr, 0xf00000, 0, 0xf00000,
        !           326:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_FIVE, 12},
        !           327: #endif /* NPC586 > 0 */
        !           328: 
        !           329: #if NNE > 0
        !           330: {&nedriver, "ne", 0, neintr, 0x280,0x4000,0xd0000,
        !           331:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 5},
        !           332: {&nedriver, "ne", 1, neintr, 0x300,0x4000,0xd0000,
        !           333:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 10},
        !           334: #endif NNE > 0
        !           335: 
        !           336: #if NNS8390 > 0
        !           337:        /* "wd" and "el" */
        !           338:   {&ns8390driver, "wd", 0, ns8390intr, 0x280,0x2000,0xd0000,
        !           339:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 9},
        !           340:   {&ns8390driver, "wd", 0, ns8390intr, 0x2a0,0x2000,0xd0000,
        !           341:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 9},
        !           342:   {&ns8390driver, "wd", 0, ns8390intr, 0x2e0,0x2000,0xd0000,
        !           343:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 5},
        !           344:   {&ns8390driver, "wd", 0, ns8390intr, 0x300,0x2000,0xd0000,
        !           345:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 5},
        !           346:   {&ns8390driver, "wd", 0, ns8390intr, 0x250,0x2000,0xd0000,
        !           347:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 5},
        !           348:   {&ns8390driver, "wd", 0, ns8390intr, 0x350,0x2000,0xd0000,
        !           349:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 5},
        !           350:   {&ns8390driver, "wd", 0, ns8390intr, 0x240,0x2000,0xd0000,
        !           351:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 11},
        !           352:   {&ns8390driver, "wd", 1, ns8390intr, 0x340,0x2000,0xe8000,
        !           353:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 15},
        !           354: #endif /* NNS8390 > 0 */
        !           355: 
        !           356: #if NAT3C501 > 0
        !           357:   {&at3c501driver, "et", 0, at3c501intr, 0x300, 0,0x300,
        !           358:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_SIX, 9},
        !           359: #endif /* NAT3C501 > 0 */
        !           360: 
        !           361: #if NUL > 0
        !           362:   {&uldriver, "ul",  0, ulintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 0},
        !           363:   {&uldriver, "ul",  1, ulintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 0},
        !           364: #endif
        !           365: 
        !           366: #if NWD > 0
        !           367:   {&wddriver, "wd",  0, wdintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 9},
        !           368:   {&wddriver, "wd",  1, wdintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 15},
        !           369: #endif
        !           370: 
        !           371: #if NHPP > 0
        !           372:   {&hppdriver, "hpp", 0, hppintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 0},
        !           373:   {&hppdriver, "hpp", 1, hppintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 0},
        !           374: #endif
        !           375: #endif /* ! LINUX_DEV */
        !           376: 
        !           377: #if NCOM > 0
        !           378:   {&comdriver, "com", 0, comintr, 0x3f8, 8, 0x3f8,
        !           379:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_TTY, 4},
        !           380:   {&comdriver, "com", 1, comintr, 0x2f8, 8, 0x2f8,
        !           381:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_TTY, 3},
        !           382:   {&comdriver, "com", 2, comintr, 0x3e8, 8, 0x3e8,
        !           383:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_TTY, 5},
        !           384: #endif /* NCOM > 0 */
        !           385: 
        !           386: #ifndef LINUX_DEV
        !           387: #if NLPR > 0
        !           388:   {&lprdriver, "lpr", 0, lprintr, 0x378, 3, 0x378,
        !           389:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_TTY, 7},
        !           390:   {&lprdriver, "lpr", 0, lprintr, 0x278, 3, 0x278,
        !           391:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_TTY, 7},
        !           392:   {&lprdriver, "lpr", 0, lprintr, 0x3bc, 3, 0x3bc,
        !           393:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_TTY, 7},
        !           394: #endif /* NLPR > 0 */
        !           395: 
        !           396: #if NWT > 0
        !           397:   {&wtdriver, "wt", 0, wtintr, 0x300, 2, 0x300,
        !           398:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_FIVE, 5},
        !           399:   {&wtdriver, "wt", 0, wtintr, 0x288, 2, 0x288,
        !           400:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_FIVE, 5},
        !           401:   {&wtdriver, "wt", 0, wtintr, 0x388, 2, 0x388,
        !           402:      '?',    0,   -1,    -1,    0,   0,        0,   SPL_FIVE, 5},
        !           403: #endif /* NWT > 0 */
        !           404: #endif /* ! LINUX_DEV */
        !           405: 
        !           406:   0
        !           407: };
        !           408: 
        !           409: /*
        !           410:  * probeio:
        !           411:  *
        !           412:  *     Probe and subsequently attach devices out on the AT bus.
        !           413:  *
        !           414:  *
        !           415:  */
        !           416: void probeio(void)
        !           417: {
        !           418:        register struct bus_device      *device;
        !           419:        register struct bus_ctlr        *master;
        !           420:        int                             i = 0;
        !           421: 
        !           422:        for (master = bus_master_init; master->driver; master++)
        !           423:        {
        !           424:                if (configure_bus_master(master->name, master->address,
        !           425:                                master->phys_address, i, "atbus"))
        !           426:                        i++;
        !           427:        }
        !           428: 
        !           429:        for (device = bus_device_init; device->driver; device++)
        !           430:        {
        !           431:                /* ignore what we (should) have found already */
        !           432:                if (device->alive || device->ctlr >= 0)
        !           433:                        continue;
        !           434:                if (configure_bus_device(device->name, device->address,
        !           435:                                device->phys_address, i, "atbus"))
        !           436:                        i++;
        !           437:        }
        !           438: 
        !           439: #if    MACH_TTD
        !           440:        /*
        !           441:         * Initialize Remote kernel debugger.
        !           442:         */
        !           443:        ttd_init();
        !           444: #endif /* MACH_TTD */
        !           445: }
        !           446: 
        !           447: void take_dev_irq(
        !           448:        struct bus_device *dev)
        !           449: {
        !           450:        int pic = (int)dev->sysdep1;
        !           451: 
        !           452:        if (intpri[pic] == 0) {
        !           453:                iunit[pic] = dev->unit;
        !           454:                ivect[pic] = dev->intr;
        !           455:                intpri[pic] = (int)dev->sysdep;
        !           456:                form_pic_mask();
        !           457:        } else {
        !           458:                printf("The device below will clobber IRQ %d.\n", pic);
        !           459:                printf("You have two devices at the same IRQ.\n");
        !           460:                printf("This won't work.  Reconfigure your hardware and try again.\n");
        !           461:                printf("%s%d: port = %x, spl = %d, pic = %d.\n",
        !           462:                        dev->name, dev->unit, dev->address,
        !           463:                        dev->sysdep, dev->sysdep1);
        !           464:                while (1);
        !           465:        }
        !           466:                
        !           467: }
        !           468: 
        !           469: void take_ctlr_irq(
        !           470:        struct bus_ctlr *ctlr)
        !           471: {
        !           472:        int pic = ctlr->sysdep1;
        !           473:        if (intpri[pic] == 0) {
        !           474:                iunit[pic] = ctlr->unit;
        !           475:                ivect[pic] = ctlr->intr;
        !           476:                intpri[pic] = (int)ctlr->sysdep;
        !           477:                form_pic_mask();
        !           478:        } else {
        !           479:                printf("The device below will clobber IRQ %d.\n", pic);
        !           480:                printf("You have two devices at the same IRQ.  This won't work.\n");
        !           481:                printf("Reconfigure your hardware and try again.\n");
        !           482:                while (1);
        !           483:        }
        !           484: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.