root/dev/pci/if_nfevar.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


    1 /*      $OpenBSD: if_nfevar.h,v 1.11 2006/02/19 13:57:02 damien Exp $   */
    2 
    3 /*-
    4  * Copyright (c) 2005 Jonathan Gray <jsg@openbsd.org>
    5  *
    6  * Permission to use, copy, modify, and distribute this software for any
    7  * purpose with or without fee is hereby granted, provided that the above
    8  * copyright notice and this permission notice appear in all copies.
    9  *
   10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
   11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
   13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
   16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   17  */
   18 
   19 #define NFE_IFQ_MAXLEN  64
   20 
   21 struct nfe_tx_data {
   22         bus_dmamap_t    map;
   23         bus_dmamap_t    active;
   24         struct mbuf     *m;
   25 };
   26 
   27 struct nfe_tx_ring {
   28         bus_dmamap_t            map;
   29         bus_dma_segment_t       seg;
   30         bus_addr_t              physaddr;
   31         struct nfe_desc32       *desc32;
   32         struct nfe_desc64       *desc64;
   33         struct nfe_tx_data      data[NFE_TX_RING_COUNT];
   34         int                     queued;
   35         int                     cur;
   36         int                     next;
   37 };
   38 
   39 struct nfe_jbuf {
   40         caddr_t                 buf;
   41         bus_addr_t              physaddr;
   42         SLIST_ENTRY(nfe_jbuf)   jnext;
   43 };
   44 
   45 struct nfe_rx_data {
   46         bus_dmamap_t    map;
   47         struct mbuf     *m;
   48 };
   49 
   50 struct nfe_rx_ring {
   51         bus_dmamap_t            map;
   52         bus_dma_segment_t       seg;
   53         bus_dmamap_t            jmap;
   54         bus_dma_segment_t       jseg;
   55         bus_addr_t              physaddr;
   56         struct nfe_desc32       *desc32;
   57         struct nfe_desc64       *desc64;
   58         caddr_t                 jpool;
   59         struct nfe_rx_data      data[NFE_RX_RING_COUNT];
   60         struct nfe_jbuf         jbuf[NFE_JPOOL_COUNT];
   61         SLIST_HEAD(, nfe_jbuf)  jfreelist;
   62         int                     bufsz;
   63         int                     cur;
   64         int                     next;
   65 };
   66 
   67 struct nfe_softc {
   68         struct device           sc_dev;
   69         struct arpcom           sc_arpcom;
   70         bus_space_handle_t      sc_memh;
   71         bus_space_tag_t         sc_memt;
   72         void                    *sc_ih;
   73         bus_dma_tag_t           sc_dmat;
   74         struct mii_data         sc_mii;
   75         struct timeout          sc_tick_ch;
   76         void                    *sc_powerhook;
   77 
   78         int                     sc_if_flags;
   79         u_int                   sc_flags;
   80 #define NFE_JUMBO_SUP   0x01
   81 #define NFE_40BIT_ADDR  0x02
   82 #define NFE_HW_CSUM     0x04
   83 #define NFE_HW_VLAN     0x08
   84 #define NFE_USE_JUMBO   0x10
   85 
   86         uint32_t                rxtxctl;
   87         uint8_t                 mii_phyaddr;
   88 
   89         struct nfe_tx_ring      txq;
   90         struct nfe_rx_ring      rxq;
   91 };

/* [<][>][^][v][top][bottom][index][help] */