[BACK]Return to nubus.h CVS log [TXT][DIR] Up to [local] / sys / arch / mac68k / dev

Annotation of sys/arch/mac68k/dev/nubus.h, Revision 1.1

1.1     ! nbrk        1: /*     $NetBSD: nubus.h,v 1.59 2005/01/15 16:00:59 chs Exp $   */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 1995 Allen Briggs.  All rights reserved.
        !             5:  *
        !             6:  * Redistribution and use in source and binary forms, with or without
        !             7:  * modification, are permitted provided that the following conditions
        !             8:  * are met:
        !             9:  * 1. Redistributions of source code must retain the above copyright
        !            10:  *    notice, this list of conditions and the following disclaimer.
        !            11:  * 2. Redistributions in binary form must reproduce the above copyright
        !            12:  *    notice, this list of conditions and the following disclaimer in the
        !            13:  *    documentation and/or other materials provided with the distribution.
        !            14:  * 3. All advertising materials mentioning features or use of this software
        !            15:  *    must display the following acknowledgement:
        !            16:  *     This product includes software developed by Allen Briggs.
        !            17:  * 4. The name of the author may not be used to endorse or promote products
        !            18:  *    derived from this software without specific prior written permission.
        !            19:  *
        !            20:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            21:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
        !            22:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
        !            23:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
        !            24:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
        !            25:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        !            26:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        !            27:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        !            28:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
        !            29:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            30:  */
        !            31:
        !            32: /*
        !            33:  * Nubus cards in Macintoshes are identified by 4 16-bit numbers:
        !            34:  * Category:   What is the main purpose of this card?
        !            35:  * Type:       Within this overall category, what kind of card?
        !            36:  * DrSW:       What software interface does it use?
        !            37:  * DrHW:       What specific hardware is it?
        !            38:  *
        !            39:  * For example, the "Toby Frame Buffer" display card is
        !            40:  *     Category 3 (display)
        !            41:  *     Type     1 (video)
        !            42:  *     DrSW     1 (Apple)
        !            43:  * and DrHW     1 (TFB).
        !            44:  */
        !            45:
        !            46: #include <machine/cpu.h>
        !            47:
        !            48: #define NUBUS_CATEGORY_BOARD   0x0001
        !            49: #define  NUBUS_TYPE_BOARD      0x0000  /* We want these for minimal board */
        !            50: #define   NUBUS_DRSW_BOARD     0x0000  /* ROMs that come with nothing but */
        !            51: #define    NUBUS_DRHW_BOARD    0x0000  /* a board resource (old NI_GPIB) */
        !            52:
        !            53: #define NUBUS_CATEGORY_DISPLAY 0x0003
        !            54: #define  NUBUS_TYPE_VIDEO      0x0001
        !            55: #define  NUBUS_TYPE_LCD                0x0002
        !            56: #define   NUBUS_DRSW_APPLE     0x0001
        !            57: #define    NUBUS_DRHW_TFB      0x0001  /* Apple Toby Frame Buffer */
        !            58: #define    NUBUS_DRHW_BAER     0x0002  /* Formac Baers/ProNitron 80.IVb */
        !            59: #define    NUBUS_DRHW_WVC      0x0006  /* Apple Workstation Video Card */
        !            60: #define    NUBUS_DRHW_COLORMAX 0x0007  /* Sigma Designs ColorMax */
        !            61: #define    NUBUS_DRHW_SE30     0x0009  /* Apple SE/30 pseudo-slot video */
        !            62: #define    NUBUS_DRHW_M2HRVC   0x0013  /* Apple Mac II High-Res Video Card */
        !            63: #define    NUBUS_DRHW_MVC      0x0014  /* Apple Mac II Monochrome Video Card */
        !            64: #define    NUBUS_DRHW_PVC      0x0017  /* Apple Mac II Portrait Video Card */
        !            65: #define    NUBUS_DRHW_MDC      0x0019  /* Apple Macintosh Display Card */
        !            66: #define    NUBUS_DRHW_VSC      0x0020  /* Apple Macintosh Duo MiniDock */
        !            67: #define    NUBUS_DRHW_JET      0x0029  /* Apple Macintosh DuoDock II */
        !            68: #define    NUBUS_DRHW_BOOGIE   0x002b  /* Apple Macintosh 24AC Video Card */
        !            69: #define    NUBUS_DRHW_VILTRO340        0x0102  /* VillageTronic Mac Picasso 340 */
        !            70: #define    NUBUS_DRHW_SUPRGFX  0x0105  /* SuperMac GFX */
        !            71: #define    NUBUS_DRHW_RELAX200 0x0131  /* Relax 19" Model 200 */
        !            72: #define    NUBUS_DRHW_FORMAC   0x013A  /* Formac color card II */
        !            73: #define    NUBUS_DRHW_CB264    0x013B  /* RasterOps ColorBoard 264 */
        !            74: #define    NUBUS_DRHW_MICRON   0x0146  /* Micron Exceed color */
        !            75: #define    NUBUS_DRHW_RADGSC   0x0153  /* Radius GS/C */
        !            76: #define    NUBUS_DRHW_SPECTRM8 0x017b  /* SuperMac Spectrum/8  Series III */
        !            77: #define    NUBUS_DRHW_SPECTRUM 0x017c  /* SuperMac Spectrum/24 Series III */
        !            78: #define    NUBUS_DRHW_VIMAGE   0x026E  /* Interware Co., Ltd. Vimage */
        !            79: #define    NUBUS_DRHW_CB364    0x026F  /* RasterOps ColorBoard 364 */
        !            80: #define    NUBUS_DRHW_LVIEW    0x0278  /* Sigma Designs L-View */
        !            81: #define    NUBUS_DRHW_RDCGX    0x027C  /* Radius DirectColor/GX */
        !            82: #define    NUBUS_DRHW_RPC8     0x0291  /* Radius PrecisionColor 8 */
        !            83: #define    NUBUS_DRHW_LAPIS    0x0292  /* SE/30 Lapis ProColorServer 8 PDS */
        !            84: #define    NUBUS_DRHW_ROPS24LXI        0x02A0  /* RasterOps 8/24 XLi */
        !            85: #define    NUBUS_DRHW_ROPSPPGT 0x02A5  /* RasterOps PaintBoard Prism GT 1.0 */
        !            86: #define    NUBUS_DRHW_FUTURASX 0x02AE  /* E-Machines Futura-SX */
        !            87: #define    NUBUS_DRHW_ROPS24XLTV 0x02B7        /* RasterOps 24XlTV */
        !            88: #define    NUBUS_DRHW_THUNDER24        0x02CB  /* SuperMac Thunder/24 */
        !            89: #define    NUBUS_DRHW_MPGX     0x03D6  /* MiroPRISMA GX */
        !            90: #define    NUBUS_DRHW_ROPS24MXTV 0x03DF        /* RasterOps 24MxTV */
        !            91: #define    NUBUS_DRHW_GVIMAGE  0x03FB  /* Interware Co., Ltd. Grand Vimage */
        !            92: #define    NUBUS_DRHW_RPC24XP  0x0406  /* Radius PrecisionColor 24Xp */
        !            93: #define    NUBUS_DRHW_RPC24X   0x040A  /* Radius PrecisionColor 24X */
        !            94: #define    NUBUS_DRHW_RPC8XJ   0x040B  /* Radius PrecisionColor 8xj */
        !            95: #define    NUBUS_DRHW_FIILX    0x0417  /* Futura II LX */
        !            96: #define    NUBUS_DRHW_FIISXDSP 0x042F  /* Futura II SX/DSP */
        !            97: #define    NUBUS_DRHW_MC2124NB 0x0462  /* MicroConversions 2124NB II */
        !            98:
        !            99: /* False DrHW values for video cards masquerading as other cards */
        !           100: #define    NUBUS_DRHW_SAM768   0x10000 /* Cornerstone/Samsung 768x1006 */
        !           101:
        !           102: #define NUBUS_CATEGORY_NETWORK 0x0004
        !           103: #define  NUBUS_TYPE_ETHERNET   0x0001
        !           104: #define   NUBUS_DRSW_3COM      0x0000
        !           105: #define   NUBUS_DRSW_CABLETRON 0x0001
        !           106: #define   NUBUS_DRSW_GATOR     0x0103
        !           107: #define   NUBUS_DRSW_ASANTE    0x0104
        !           108: #define   NUBUS_DRSW_TECHWORKS 0x0109
        !           109: #define   NUBUS_DRSW_DAYNA     0x010B
        !           110: #define   NUBUS_DRSW_FARALLON  0x010C
        !           111: #define   NUBUS_DRSW_DAYNA2    0x0115
        !           112: #define   NUBUS_DRSW_FOCUS     0x011A
        !           113: #define   NUBUS_DRSW_ASANTEF   0x011D
        !           114: #define   NUBUS_DRSW_TFLLAN    0x011E
        !           115: #define    NUBUS_DRHW_INTERLAN 0x0100
        !           116: #define    NUBUS_DRHW_ASANTEF  0x0101
        !           117: #define    NUBUS_DRHW_KINETICS 0x0106
        !           118: #define    NUBUS_DRHW_CABLETRON        0x0109
        !           119: #define    NUBUS_DRHW_NUVOLINK 0x010B
        !           120: #define    NUBUS_DRHW_ASANTE_LC        0x010F
        !           121: #define    NUBUS_DRHW_SONIC    0x0110
        !           122: #define    NUBUS_DRHW_TECHWORKS        0x0112
        !           123: #define    NUBUS_DRHW_APPLE_SNT        0x0118
        !           124: #define    NUBUS_DRHW_APPLE_SN 0x0119
        !           125:
        !           126: #define NUBUS_CATEGORY_COMMUNICATIONS  0x0006
        !           127: #define  NUBUS_TYPE_RS232      0x0002
        !           128: #define  NUBUS_TYPE_IEEE488    0x0004
        !           129: #define   NUBUS_DRSW_HDS       0x0102
        !           130: #define   NUBUS_DRSW_NI488     0x0104
        !           131: #define   NUBUS_DRSW_HQS       0x0105
        !           132: #define    NUBUS_DRHW_HDS      0x0102  /* CS Hustler serial */
        !           133: #define    NUBUS_DRHW_HQS      0x0105  /* CS Hurdler quad serial */
        !           134: #define    NUBUS_DRHW_NB_GPIB_TNT      0x0102  /* NatInst NB-GPIB/TNT */
        !           135:
        !           136: #define NUBUS_CATEGORY_MEMORY  0x0009  /* Also KanjiTalk Font Card? */
        !           137: #define  NUBUS_TYPE_RAMCACHE   0x010C  /* From Apple PDS card */
        !           138: #define   NUBUS_DRSW_AWGSPDS   0x0100
        !           139: #define    NUBUS_DRHW_AWGSPDS  0x0100
        !           140:
        !           141: #define NUBUS_CATEGORY_CPU     0x000A
        !           142: #define  NUBUS_TYPE_68000      0x0002
        !           143: #define  NUBUS_TYPE_68020      0x0003
        !           144: #define  NUBUS_TYPE_68030      0x0004
        !           145: #define  NUBUS_TYPE_68040      0x0005
        !           146: #define  NUBUS_TYPE_MX         0x0009  /* TI microExplorer */
        !           147:
        !           148: #define NUBUS_CATEGORY_INTBUS          0x000C
        !           149: #define  NUBUS_TYPE_SCSI               0x0008
        !           150: #define   NUBUS_DRSW_AWGSPDS_SCSI      0x0006
        !           151: #define    NUBUS_DRHW_AWGSPDS_SCSI     0x0100
        !           152: #define   NUBUS_DRSW_PLI               0x0108
        !           153: #define    NUBUS_DRHW_PLI              0x0100
        !           154: #define  NUBUS_TYPE_SCSIW      0x000B  /* FWB JackHammer Fast/Wide */
        !           155: #define   NUBUS_DRSW_FWB       0x0001  /* XXX Allen says 0x010C */
        !           156: #define    NUBUS_DRHW_FWB              0x0100
        !           157:
        !           158: #define NUBUS_CATEGORY_DOCK    0x0020
        !           159: #define  NUBUS_TYPE_STATION    0x0001
        !           160: #define  NUBUS_TYPE_DESK       0x0002
        !           161: #define  NUBUS_TYPE_TRAVEL     0x0003
        !           162: /* #define   NUBUS_DRSW_APPLE  0x0001 */
        !           163: #define   NUBUS_DRSW_NEWERTECH 0x0101
        !           164:
        !           165: /* Station */
        !           166: #define    NUBUS_DRHW_DUODOCK  0x0001  /* Apple DuoDock */
        !           167: #define    NUBUS_DRHW_DUODOCKII        0x0002  /* Apple DuoDock II */
        !           168:
        !           169: /* Desk */
        !           170: #define    NUBUS_DRHW_DUOMINIDOCK 0x0001 /* Apple Duo MiniDock */
        !           171:
        !           172: /* Travel */
        !           173: #define    NUBUS_DRHW_MICROSCSI 0x0100 /* Newer Technology  SCSI MicroDock */
        !           174:
        !           175:
        !           176: /*
        !           177:  * This is the same as Apple's Format Block for a card, with the
        !           178:  * addition of a pointer to the base of the NuBUS slot.
        !           179:  *
        !           180:  * This basically describes a nubus card--this structure is held in the last
        !           181:  * N bytes of each valid card's declaration ROM.
        !           182:  */
        !           183: typedef struct _nubus_slot {
        !           184:        u_long          top;
        !           185:        u_int8_t        slot;
        !           186:        u_int8_t        bytelanes;
        !           187:        u_int8_t        step;
        !           188:        u_int32_t       test_pattern;
        !           189:        u_int8_t        format;
        !           190:        u_int8_t        revision_level;
        !           191:        u_int32_t       crc;
        !           192:        u_int32_t       length;
        !           193:        u_int32_t       directory_offset;
        !           194: } nubus_slot;
        !           195:
        !           196: /*
        !           197:  * Just a structure to ease comparison of type for drivers, etc.
        !           198:  */
        !           199: typedef struct _nubus_type {
        !           200:        u_int16_t       category;
        !           201:        u_int16_t       type;
        !           202:        u_int16_t       drsw;
        !           203:        u_int16_t       drhw;
        !           204: } nubus_type;
        !           205:
        !           206: /*
        !           207:  * nubus_dir is a structure that describes a nubus directory.
        !           208:  * The nubus*dir() functions should be used to traverse this.
        !           209:  */
        !           210: typedef struct _nubus_dir {
        !           211:        u_int32_t       dirbase;
        !           212:        u_int32_t       curr_ent;
        !           213: } nubus_dir;
        !           214:
        !           215: /*
        !           216:  * This is the equivalent of an Apple sResource directory entry
        !           217:  * with the addition of a pointer to itself (essentially) for easy
        !           218:  * calculation of jump to indirect data.
        !           219:  */
        !           220: typedef struct _nubus_dirent {
        !           221:        u_int32_t       myloc;
        !           222:        u_int8_t        rsrc_id;
        !           223:        u_int32_t       offset;
        !           224: } nubus_dirent;
        !           225:
        !           226: /*
        !           227:  * This is the equivalent of an Apple sResource with the addition of
        !           228:  * a pointer back to the sResource directory from whence we came.
        !           229:  *
        !           230:  * According to the Apple documentation, each sResource is of one of the
        !           231:  * following forms:
        !           232:  *     all:    bits 31-24      Identification number
        !           233:  *
        !           234:  *     offset: bits 23-0       Offset to long data, cString, sBlock, etc.
        !           235:  *     word:   bits 23-16      0x00
        !           236:  *             bits 15-0       word data
        !           237:  *     byte:   bits 23-8       0x0000
        !           238:  *             bits 7-0        byte data
        !           239:  *
        !           240:  * The last resource has id = 0xff and data = 0x000000.
        !           241:  */
        !           242: typedef struct _nubus_rsrc {
        !           243:        u_int32_t       myloc;
        !           244:        u_int8_t        id;
        !           245:        u_int32_t       data;
        !           246: } nubus_rsrc;
        !           247:
        !           248: /*
        !           249:  * On a NuBus master, an sMemory resource (this is a second-level
        !           250:  * resource list) holds a list of address ranges for onboard
        !           251:  * RAM, ROM and IO resources.
        !           252:  */
        !           253: typedef struct _nubus_smem_range {
        !           254:        u_int32_t       length;
        !           255:        u_int32_t       offset;
        !           256: } nubus_smem_range;
        !           257:
        !           258: /*
        !           259:  * XXX This is mapped on the range list we get back out of the sMemory
        !           260:  * resources. I would have liked the range[] array to be of undefined
        !           261:  * size but the compiler does not let me.
        !           262:  * Maybe it's just too much grief, and we should work with an array
        !           263:  * of u_int32_t.
        !           264:  */
        !           265: typedef struct _nubus_smem_rangelist {
        !           266:        u_int32_t               length;
        !           267:        nubus_smem_range        range[1];
        !           268: } nubus_smem_rangelist;
        !           269:
        !           270:
        !           271: /* Resource IDs for NUBUS_CATEGORY_* (All) */
        !           272: #define NUBUS_RSRC_TYPE                0x01    /* Type (required)              */
        !           273: #define NUBUS_RSRC_NAME                0x02    /* Name (required)              */
        !           274: #define NUBUS_RSRC_ICON                0x03    /* Icon                         */
        !           275: #define NUBUS_RSRC_DRVRDIR     0x04    /* Driver directory             */
        !           276: #define NUBUS_RSRC_LOADREC     0x05    /* Load record for resource     */
        !           277: #define NUBUS_RSRC_BOOTREC     0x06    /* Boot record                  */
        !           278: #define NUBUS_RSRC_FLAGS       0x07    /* sResource Flags              */
        !           279: #define NUBUS_RSRC_HWDEVID     0x08    /* Hardware device ID           */
        !           280: #define NUBUS_RSRC_MINOR_BASEOS        0x0A    /* Offset to hw in std space    */
        !           281: #define NUBUS_RSRC_MINOR_LENGTH        0x0B    /* Length of std space          */
        !           282: #define NUBUS_RSRC_MAJOR_BASEOS        0x0C    /* Offset to hw in super space  */
        !           283: #define NUBUS_RSRC_MAJOR_LENGTH        0x0D    /* Length of super space        */
        !           284: #define NUBUS_RSRC_CICN                0x0F    /* Color icon                   */
        !           285: #define NUBUS_RSRC_ICL8                0x10    /* 8-bit icon data              */
        !           286: #define NUBUS_RSRC_ICL4                0x11    /* 4-bit icon data              */
        !           287: #define NUBUS_RSRC_SMEMORY     0x6C    /* Resource list for master     */
        !           288:
        !           289: /* Resource IDs for NUBUS_CATEGORY_DISPLAY */
        !           290: #define NUBUS_RSRC_GAMMADIR    0x40    /* ID for gamma directory       */
        !           291: #define NUBUS_RSRC_VIDNAMES    0x41    /* ID for video name directory  */
        !           292: #define NUBUS_RSRC_FIRSTMODE   0x80    /* ID for first mode (1-bit)    */
        !           293: #define NUBUS_RSRC_SECONDMODE  0x81    /* ID for 2nd mode (2-bit)      */
        !           294: #define NUBUS_RSRC_THIRDMODE   0x82    /* ID for 3rd mode (4-bit)      */
        !           295: #define NUBUS_RSRC_FOURTHMODE  0x83    /* ID for 4th mode (8-bit)      */
        !           296: #define NUBUS_RSRC_FIFTHMODE   0x84    /* ID for 5th mode (16-bit)     */
        !           297: #define NUBUS_RSRC_SIXTHMODE   0x85    /* ID for 6th mode (32-bit)     */
        !           298:
        !           299: /* Resource IDs for NUBUS_CATEGORY_BOARD */
        !           300: #define NUBUS_RSRC_BOARDID     0x20    /* Board ID                     */
        !           301: #define NUBUS_RSRC_PRAMINITDATA        0x21    /* Private board data for PRAM  */
        !           302: #define NUBUS_RSRC_PRIMARYINIT 0x22    /* Primary init record          */
        !           303: #define NUBUS_RSRC_TIMEOUTCONST        0x23    /* Timeout constant             */
        !           304: #define NUBUS_RSRC_VENDORINFO  0x24    /* Vendor info list             */
        !           305: #define NUBUS_RSRC_BOARDFLAGS  0x25    /* Board flags                  */
        !           306: #define NUBUS_RSRC_SECONDINIT  0x26    /* Secondary init record        */
        !           307:
        !           308: #define NUBUS_RSRC_VEND_ID     0x01    /* Card vendor's design ID      */
        !           309: #define NUBUS_RSRC_VEND_SERIAL 0x02    /* Card's serial number         */
        !           310: #define NUBUS_RSRC_VEND_REV    0x03    /* Card design's revision level */
        !           311: #define NUBUS_RSRC_VEND_PART   0x04    /* Card part number             */
        !           312: #define NUBUS_RSRC_VEND_DATE   0x05    /* Card revision date           */
        !           313:
        !           314: /* Resource IDs for NUBUS_RSRC_SMEMORY master sMemory resource list */
        !           315: #define NUBUS_RSRC_SMEM_MINOR_RAMADDR  0x80    /* Minor RAM address ranges */
        !           316: #define NUBUS_RSRC_SMEM_MAJOR_RAMADDR  0x81    /* Major RAM address ranges */
        !           317: #define NUBUS_RSRC_SMEM_MINOR_ROMADDR  0x82    /* Minor ROM address ranges */
        !           318: #define NUBUS_RSRC_SMEM_MAJOR_ROMADDR  0x83    /* Major ROM address ranges */
        !           319: #define NUBUS_RSRC_SMEM_MINOR_DEVADDR  0x84    /* Minor device address ranges */
        !           320: #define NUBUS_RSRC_SMEM_MAJOR_DEVADDR  0x85    /* Major device address ranges */
        !           321:
        !           322:
        !           323: typedef struct _NUBUS_DRIVER {
        !           324:        u_int8_t        drvr_id;
        !           325:        u_int32_t       offset;
        !           326: } NUBUS_DRIVER;
        !           327:
        !           328: typedef struct _NUBUS_BLOCK {
        !           329:        u_int32_t       size;           /* Size of block of data        */
        !           330:        caddr_t         data;           /* Pointer to data              */
        !           331: } NUBUS_BLOCK;
        !           332:
        !           333: typedef struct _NUBUS_EXEC_BLOCK {
        !           334:        u_int32_t       size;           /* Size of total block - 4      */
        !           335:        u_int8_t        revision;       /* Always 0x2                   */
        !           336:        u_int8_t        cpu;            /* Which processor?             */
        !           337:        u_int32_t       code_offset;    /* Offset base to start of code */
        !           338:        caddr_t         code;           /* pointer to base of code.     */
        !           339: } NUBUS_EXEC_BLOCK;
        !           340:
        !           341: #define NUBUS_EXEC_CPU_68000   1
        !           342: #define NUBUS_EXEC_CPU_68020   2
        !           343: #define NUBUS_EXEC_CPU_68030   3
        !           344: #define NUBUS_EXEC_CPU_68040   4
        !           345:
        !           346: #define NUBUS_MIN_SLOT         0x9
        !           347: #define NUBUS_MAX_SLOT         0xE
        !           348: #define NUBUS_ROM_TEST_PATTERN 0x5A932BC7
        !           349:
        !           350: #define NUBUS_SLOT2PA(x)       (0xf9000000 + \
        !           351:                                 ((((x) - NUBUS_MIN_SLOT) & 0xf) << 24))
        !           352:
        !           353: struct nubus_attach_args {
        !           354:        bus_space_tag_t na_tag;
        !           355:        int             slot;
        !           356:        int             rsrcid;
        !           357:        u_int16_t       category;
        !           358:        u_int16_t       type;
        !           359:        u_int16_t       drsw;
        !           360:        u_int16_t       drhw;
        !           361:        nubus_slot      *fmt;
        !           362: };
        !           363:
        !           364: struct nubus_softc {
        !           365:        struct  device  sc_dev;
        !           366: };
        !           367:
        !           368:
        !           369: void   nubus_get_main_dir(nubus_slot *, nubus_dir *);
        !           370: void   nubus_get_dir_from_rsrc(nubus_slot *, nubus_dirent *, nubus_dir *);
        !           371:
        !           372: int    nubus_find_rsrc(bus_space_tag_t, bus_space_handle_t, nubus_slot *,
        !           373:            nubus_dir *, u_int8_t, nubus_dirent *);
        !           374: int    nubus_get_ind_data(bus_space_tag_t, bus_space_handle_t, nubus_slot *,
        !           375:            nubus_dirent *, caddr_t, int);
        !           376: int    nubus_get_c_string(bus_space_tag_t, bus_space_handle_t, nubus_slot *,
        !           377:            nubus_dirent *, caddr_t, int);
        !           378: int    nubus_get_smem_addr_rangelist(bus_space_tag_t, bus_space_handle_t,
        !           379:            nubus_slot *, nubus_dirent *, caddr_t);
        !           380:
        !           381: char   *nubus_get_vendor(bus_space_tag_t, bus_space_handle_t, nubus_slot *,
        !           382:            int);
        !           383: char   *nubus_get_card_name(bus_space_tag_t, bus_space_handle_t, nubus_slot *);
        !           384: #ifdef DEBUG
        !           385: void   nubus_scan_slot(bus_space_tag_t, int);
        !           386: #endif

CVSweb