The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/ep/if_epvar.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright (c) 1993 Herb Peyerl (hpeyerl@novatel.ca) All rights reserved.
    3  *
    4  * Redistribution and use in source and binary forms, with or without
    5  * modification, are permitted provided that the following conditions are
    6  * met: 1. Redistributions of source code must retain the above copyright
    7  * notice, this list of conditions and the following disclaimer. 2. The name
    8  * of the author may not be used to endorse or promote products derived from
    9  * this software without specific prior written permission
   10  *
   11  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
   12  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   13  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
   14  * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   15  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
   16  * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   17  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   18  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   19  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   20  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   21  *
   22  * $FreeBSD: src/sys/dev/ep/if_epvar.h,v 1.13.4.1 2005/02/01 21:45:16 imp Exp $
   23  */
   24 
   25 struct ep_board {
   26         u_short prod_id;        /* product ID */
   27         int cmd_off;            /* command offset (bit shift) */
   28         int mii_trans;          /* activate MII transiever */
   29         u_short res_cfg;        /* resource configuration */
   30 };
   31 
   32 /*
   33  * Ethernet software status per interface.
   34  */
   35 struct ep_softc {
   36         struct arpcom arpcom;   /* Ethernet common part  */
   37         struct ifmedia ifmedia; /* media info            */
   38 
   39         device_t dev;
   40 
   41         struct mtx sc_mtx;
   42         struct resource *iobase;
   43         struct resource *irq;
   44 
   45         bus_space_handle_t bsh;
   46         bus_space_tag_t bst;
   47         void *ep_intrhand;
   48 
   49         u_short ep_connectors;  /* Connectors on this card. */
   50         u_char ep_connector;    /* Configured connector. */
   51 
   52         struct mbuf *top;
   53         struct mbuf *mcur;
   54         short cur_len;
   55 
   56         int stat;               /* some flags */
   57 #define F_RX_FIRST              0x001
   58 #define F_PROMISC               0x008
   59 #define F_ACCESS_32_BITS        0x100
   60 
   61         int gone;               /* adapter is not present (for PCCARD) */
   62 
   63         struct ep_board epb;
   64 
   65         int unit;
   66 
   67 #ifdef  EP_LOCAL_STATS
   68         short tx_underrun;
   69         short rx_no_first;
   70         short rx_no_mbuf;
   71         short rx_overrunf;
   72         short rx_overrunl;
   73 #endif
   74 };
   75 
   76 int ep_alloc(device_t);
   77 void ep_free(device_t);
   78 int ep_detach(device_t);
   79 void ep_get_media(struct ep_softc *);
   80 int ep_attach(struct ep_softc *);
   81 void ep_intr(void *);
   82 int get_e(struct ep_softc *, uint16_t, uint16_t *);
   83 int ep_get_macaddr(struct ep_softc *, u_char *);
   84 
   85 #define CSR_READ_1(sc, off) (bus_space_read_1((sc)->bst, (sc)->bsh, off))
   86 #define CSR_READ_2(sc, off) (bus_space_read_2((sc)->bst, (sc)->bsh, off))
   87 #define CSR_WRITE_1(sc, off, val) \
   88         bus_space_write_1(sc->bst, sc->bsh, off, val)
   89 #define CSR_WRITE_2(sc, off, val) \
   90         bus_space_write_2(sc->bst, sc->bsh, off, val)
   91 #define CSR_WRITE_MULTI_1(sc, off, addr, count) \
   92         bus_space_write_multi_1(sc->bst, sc->bsh, off, addr, count)
   93 #define CSR_WRITE_MULTI_2(sc, off, addr, count) \
   94         bus_space_write_multi_2(sc->bst, sc->bsh, off, addr, count)
   95 #define CSR_WRITE_MULTI_4(sc, off, addr, count) \
   96         bus_space_write_multi_4(sc->bst, sc->bsh, off, addr, count)
   97 #define CSR_READ_MULTI_1(sc, off, addr, count) \
   98         bus_space_read_multi_1(sc->bst, sc->bsh, off, addr, count)
   99 #define CSR_READ_MULTI_2(sc, off, addr, count) \
  100         bus_space_read_multi_2(sc->bst, sc->bsh, off, addr, count)
  101 #define CSR_READ_MULTI_4(sc, off, addr, count) \
  102         bus_space_read_multi_4(sc->bst, sc->bsh, off, addr, count)
  103 
  104 #define EP_LOCK(_sc)            mtx_lock(&(_sc)->sc_mtx)
  105 #define EP_UNLOCK(_sc)          mtx_unlock(&(_sc)->sc_mtx)
  106 #define EP_LOCK_INIT(_sc) \
  107         mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \
  108             MTX_NETWORK_LOCK, MTX_DEF)
  109 #define EP_LOCK_DESTORY(_sc)    mtx_destroy(&_sc->sc_mtx);
  110 #define EP_ASSERT_LOCKED(_sc)   mtx_assert(&_sc->sc_mtx, MA_OWNED);
  111 #define EP_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED);

Cache object: 4836825d545ff7fa82f45387098cf2cb


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.