[BACK]Return to elink3var.h CVS log [TXT][DIR] Up to [local] / sys / dev / ic

Annotation of sys/dev/ic/elink3var.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: elink3var.h,v 1.18 2002/06/09 03:14:18 todd Exp $     */
                      2: /*     $NetBSD: elink3var.h,v 1.12 1997/03/30 22:47:11 jonathan Exp $  */
                      3:
                      4: /*
                      5:  * Copyright (c) 1994 Herb Peyerl <hpeyerl@beer.org>
                      6:  * All rights reserved.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  * 3. All advertising materials mentioning features or use of this software
                     17:  *    must display the following acknowledgement:
                     18:  *      This product includes software developed by Herb Peyerl.
                     19:  * 4. The name of Herb Peyerl may not be used to endorse or promote products
                     20:  *    derived from this software without specific prior written permission.
                     21:  *
                     22:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     23:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     24:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     25:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     26:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     27:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     28:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     29:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     30:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
                     31:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     32:  */
                     33:
                     34: /*
                     35:  * Ethernet software status per interface.
                     36:  */
                     37: struct ep_softc {
                     38:        struct device sc_dev;
                     39:        void *sc_ih;
                     40:        struct timeout sc_epmbuffill_tmo;
                     41:
                     42:        struct arpcom sc_arpcom;        /* Ethernet common part         */
                     43:        struct mii_data sc_mii;         /* MII/media control            */
                     44:        bus_space_tag_t sc_iot;         /* bus cookie                   */
                     45:        bus_space_handle_t sc_ioh;      /* bus i/o handle               */
                     46:        u_int   ep_connectors;          /* Connectors on this card.     */
                     47: #define MAX_MBS        8                       /* # of mbufs we keep around    */
                     48:        struct mbuf *mb[MAX_MBS];       /* spare mbuf storage.          */
                     49:        int     next_mb;                /* Which mbuf to use next.      */
                     50:        int     last_mb;                /* Last mbuf.                   */
                     51:        int     tx_start_thresh;        /* Current TX_start_thresh.     */
                     52:        int     tx_succ_ok;             /* # packets sent in sequence   */
                     53:                                        /* w/o underrun                 */
                     54:
                     55:        u_int   ep_flags;               /* capabilities flag (from EEPROM) */
                     56: #define EP_FLAGS_PNP                   0x0001
                     57: #define EP_FLAGS_FULLDUPLEX            0x0002
                     58: #define EP_FLAGS_LARGEPKT              0x0004  /* 4k packet support */
                     59: #define EP_FLAGS_SLAVEDMA              0x0008
                     60: #define EP_FLAGS_SECONDDMA             0x0010
                     61: #define EP_FLAGS_FULLDMA               0x0020
                     62: #define EP_FLAGS_FRAGMENTDMA           0x0040
                     63: #define EP_FLAGS_CRC_PASSTHRU          0x0080
                     64: #define EP_FLAGS_TXDONE                        0x0100
                     65: #define EP_FLAGS_NO_TXLENGTH           0x0200
                     66: #define EP_FLAGS_RXREPEAT              0x0400
                     67: #define EP_FLAGS_SNOOPING              0x0800
                     68: #define EP_FLAGS_100MBIT               0x1000
                     69: #define EP_FLAGS_POWERMGMT             0x2000
                     70: #define EP_FLAGS_MII                   0x4000
                     71:
                     72:        u_short ep_chipset;             /* Chipset family on this board */
                     73: #define EP_CHIPSET_UNKNOWN             0x00    /* unknown (assume 3c509) */
                     74: #define EP_CHIPSET_3C509               0x01    /* PIO: 3c509, 3c589 */
                     75: #define EP_CHIPSET_VORTEX              0x02    /* 100mbit, single-pkt dma */
                     76: #define EP_CHIPSET_BOOMERANG           0x03    /* Saner dma plus PIO */
                     77: #define EP_CHIPSET_BOOMERANG2          0x04    /* Saner dma, no PIO */
                     78: #define EP_CHIPSET_ROADRUNNER          0x05    /* Like Boomerang, but PCMCIA */
                     79:
                     80:        u_char  bustype;
                     81: #define EP_BUS_ISA             0x0
                     82: #define        EP_BUS_PCMCIA           0x1
                     83: #define        EP_BUS_EISA             0x2
                     84: #define EP_BUS_PCI             0x3
                     85:
                     86: #define EP_IS_BUS_32(a)        ((a) & 0x2)
                     87:
                     88:        u_char  txashift;               /* shift in SET_TX_AVAIL_THRESH */
                     89: };
                     90:
                     91: u_int16_t epreadeeprom(bus_space_tag_t, bus_space_handle_t, int);
                     92: void   epconfig(struct ep_softc *, u_short, u_int8_t *);
                     93: int    epintr(void *);
                     94: void   epstop(struct ep_softc *);
                     95: void   epinit(struct ep_softc *);
                     96: int    ep_detach(struct device *);

CVSweb