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/nfe/if_nfevar.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 /*      $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  * $FreeBSD: releng/8.4/sys/dev/nfe/if_nfevar.h 218198 2011-02-02 18:42:53Z yongari $
   19  */
   20 
   21 struct nfe_tx_data {
   22         bus_dmamap_t    tx_data_map;
   23         struct mbuf     *m;
   24 };
   25 
   26 struct nfe_tx_ring {
   27         bus_dma_tag_t           tx_desc_tag;
   28         bus_dmamap_t            tx_desc_map;
   29         bus_addr_t              physaddr;
   30         struct nfe_desc32       *desc32;
   31         struct nfe_desc64       *desc64;
   32         bus_dma_tag_t           tx_data_tag;
   33         struct nfe_tx_data      data[NFE_TX_RING_COUNT];
   34         int                     queued;
   35         int                     cur;
   36         int                     next;
   37 };
   38 
   39 struct nfe_rx_data {
   40         bus_dmamap_t    rx_data_map;
   41         bus_addr_t      paddr;
   42         struct mbuf     *m;
   43 };
   44 
   45 struct nfe_rx_ring {
   46         bus_dma_tag_t           rx_desc_tag;
   47         bus_dmamap_t            rx_desc_map;
   48         bus_addr_t              physaddr;
   49         struct nfe_desc32       *desc32;
   50         struct nfe_desc64       *desc64;
   51         bus_dma_tag_t           rx_data_tag;
   52         bus_dmamap_t            rx_spare_map;
   53         struct nfe_rx_data      data[NFE_RX_RING_COUNT];
   54         int                     cur;
   55         int                     next;
   56 };
   57 
   58 struct nfe_jrx_ring {
   59         bus_dma_tag_t           jrx_desc_tag;
   60         bus_dmamap_t            jrx_desc_map;
   61         bus_dma_tag_t           jrx_jumbo_tag;
   62         bus_dmamap_t            jrx_jumbo_map;
   63         bus_addr_t              jphysaddr;
   64         struct nfe_desc32       *jdesc32;
   65         struct nfe_desc64       *jdesc64;
   66         bus_dma_tag_t           jrx_data_tag;
   67         bus_dmamap_t            jrx_spare_map;
   68         struct nfe_rx_data      jdata[NFE_JUMBO_RX_RING_COUNT];
   69         int                     jcur;
   70         int                     jnext;
   71 };
   72 
   73 struct nfe_hw_stats {
   74         uint64_t                rx_octets;
   75         uint32_t                rx_frame_errors;
   76         uint32_t                rx_extra_bytes;
   77         uint32_t                rx_late_cols;
   78         uint32_t                rx_runts;
   79         uint32_t                rx_jumbos;
   80         uint32_t                rx_fifo_overuns;
   81         uint32_t                rx_crc_errors;
   82         uint32_t                rx_fae;
   83         uint32_t                rx_len_errors;
   84         uint32_t                rx_unicast;
   85         uint32_t                rx_multicast;
   86         uint32_t                rx_broadcast;
   87         uint32_t                rx_pause;
   88         uint32_t                rx_drops;
   89         uint64_t                tx_octets;
   90         uint32_t                tx_zero_rexmits;
   91         uint32_t                tx_one_rexmits;
   92         uint32_t                tx_multi_rexmits;
   93         uint32_t                tx_late_cols;
   94         uint32_t                tx_fifo_underuns;
   95         uint32_t                tx_carrier_losts;
   96         uint32_t                tx_excess_deferals;
   97         uint32_t                tx_retry_errors;
   98         uint32_t                tx_deferals;
   99         uint32_t                tx_frames;
  100         uint32_t                tx_pause;
  101         uint32_t                tx_unicast;
  102         uint32_t                tx_multicast;
  103         uint32_t                tx_broadcast;
  104 };
  105 
  106 struct nfe_softc {
  107         struct ifnet            *nfe_ifp;
  108         device_t                nfe_dev;
  109         uint16_t                nfe_devid;
  110         uint16_t                nfe_revid;
  111         device_t                nfe_miibus;
  112         struct mtx              nfe_mtx;
  113         struct resource         *nfe_res[1];
  114         struct resource         *nfe_msix_res;
  115         struct resource         *nfe_msix_pba_res;
  116         struct resource         *nfe_irq[NFE_MSI_MESSAGES];
  117         void                    *nfe_intrhand[NFE_MSI_MESSAGES];
  118         struct callout          nfe_stat_ch;
  119         int                     nfe_watchdog_timer;
  120 
  121         bus_dma_tag_t           nfe_parent_tag;
  122 
  123         int                     nfe_if_flags;
  124         uint32_t                nfe_flags;
  125 #define NFE_JUMBO_SUP           0x0001
  126 #define NFE_40BIT_ADDR          0x0002
  127 #define NFE_HW_CSUM             0x0004
  128 #define NFE_HW_VLAN             0x0008
  129 #define NFE_PWR_MGMT            0x0010
  130 #define NFE_CORRECT_MACADDR     0x0020
  131 #define NFE_TX_FLOW_CTRL        0x0040
  132 #define NFE_MIB_V1              0x0080
  133 #define NFE_MIB_V2              0x0100
  134 #define NFE_MIB_V3              0x0200
  135         int                     nfe_jumbo_disable;
  136         uint32_t                rxtxctl;
  137         uint8_t                 mii_phyaddr;
  138         uint8_t                 eaddr[ETHER_ADDR_LEN];
  139         struct nfe_hw_stats     nfe_stats;
  140         struct taskqueue        *nfe_tq;
  141         struct task             nfe_int_task;
  142         int                     nfe_link;
  143         int                     nfe_suspended;
  144         int                     nfe_framesize;
  145         int                     nfe_process_limit;
  146         int                     nfe_force_tx;
  147         uint32_t                nfe_irq_status;
  148         uint32_t                nfe_irq_mask;
  149         uint32_t                nfe_intrs;
  150         uint32_t                nfe_nointrs;
  151         uint32_t                nfe_msi;
  152         uint32_t                nfe_msix;
  153 
  154         struct nfe_tx_ring      txq;
  155         struct nfe_rx_ring      rxq;
  156         struct nfe_jrx_ring     jrxq;
  157 };
  158 
  159 struct nfe_type {
  160         uint16_t        vid_id;
  161         uint16_t        dev_id;
  162         char            *name;
  163 };

Cache object: cc8a87227e5026ae0ccf63d0d1096b6d


[ 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.