adapter.h (219289) | adapter.h (219290) |
---|---|
1/*- 2 * Copyright (c) 2011 Chelsio Communications, Inc. 3 * All rights reserved. 4 * Written by: Navdeep Parhar <np@FreeBSD.org> 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: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * | 1/*- 2 * Copyright (c) 2011 Chelsio Communications, Inc. 3 * All rights reserved. 4 * Written by: Navdeep Parhar <np@FreeBSD.org> 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: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * |
27 * $FreeBSD: head/sys/dev/cxgbe/adapter.h 219289 2011-03-05 03:27:14Z np $ | 27 * $FreeBSD: head/sys/dev/cxgbe/adapter.h 219290 2011-03-05 03:42:03Z np $ |
28 * 29 */ 30 31#ifndef __T4_ADAPTER_H__ 32#define __T4_ADAPTER_H__ 33 34#include <sys/bus.h> 35#include <sys/rman.h> --- 183 unchanged lines hidden (view full) --- 219}; 220 221/* 222 * Ingress Queue: T4 is producer, driver is consumer. 223 */ 224struct sge_iq { 225 bus_dma_tag_t desc_tag; 226 bus_dmamap_t desc_map; | 28 * 29 */ 30 31#ifndef __T4_ADAPTER_H__ 32#define __T4_ADAPTER_H__ 33 34#include <sys/bus.h> 35#include <sys/rman.h> --- 183 unchanged lines hidden (view full) --- 219}; 220 221/* 222 * Ingress Queue: T4 is producer, driver is consumer. 223 */ 224struct sge_iq { 225 bus_dma_tag_t desc_tag; 226 bus_dmamap_t desc_map; |
227 struct mtx iq_lock; | 227 bus_addr_t ba; /* bus address of descriptor ring */ |
228 char lockname[16]; | 228 char lockname[16]; |
229 unsigned int flags; 230 struct adapter *adapter; | 229 uint32_t flags; 230 uint16_t abs_id; /* absolute SGE id for the iq */ 231 int8_t intr_pktc_idx; /* packet count threshold index */ 232 int8_t pad0; 233 iq_intr_handler_t *handler; 234 __be64 *desc; /* KVA of descriptor ring */ |
231 | 235 |
232 __be64 *desc; /* KVA of descriptor ring */ 233 bus_addr_t ba; /* bus address of descriptor ring */ | 236 struct mtx iq_lock; 237 struct adapter *adapter; |
234 const __be64 *cdesc; /* current descriptor */ 235 uint8_t gen; /* generation bit */ 236 uint8_t intr_params; /* interrupt holdoff parameters */ | 238 const __be64 *cdesc; /* current descriptor */ 239 uint8_t gen; /* generation bit */ 240 uint8_t intr_params; /* interrupt holdoff parameters */ |
237 int8_t intr_pktc_idx; /* packet count threshold index */ | |
238 uint8_t intr_next; /* holdoff for next interrupt */ 239 uint8_t esize; /* size (bytes) of each entry in the queue */ 240 uint16_t qsize; /* size (# of entries) of the queue */ 241 uint16_t cidx; /* consumer index */ 242 uint16_t cntxt_id; /* SGE context id for the iq */ | 241 uint8_t intr_next; /* holdoff for next interrupt */ 242 uint8_t esize; /* size (bytes) of each entry in the queue */ 243 uint16_t qsize; /* size (# of entries) of the queue */ 244 uint16_t cidx; /* consumer index */ 245 uint16_t cntxt_id; /* SGE context id for the iq */ |
243 uint16_t abs_id; /* absolute SGE id for the iq */ 244 iq_intr_handler_t *handler; | |
245}; 246 247enum { 248 /* eq flags */ 249 EQ_ALLOCATED = (1 << 1), /* firmware resources allocated */ 250 EQ_STARTED = (1 << 2), /* started */ 251 EQ_STALLED = (1 << 3), /* currently stalled */ 252}; --- 84 unchanged lines hidden (view full) --- 337enum { 338 RXQ_LRO_ENABLED = (1 << 0) 339}; 340/* rxq: SGE ingress queue + SGE free list + miscellaneous items */ 341struct sge_rxq { 342 struct sge_iq iq; /* MUST be first */ 343 struct sge_fl fl; 344 | 246}; 247 248enum { 249 /* eq flags */ 250 EQ_ALLOCATED = (1 << 1), /* firmware resources allocated */ 251 EQ_STARTED = (1 << 2), /* started */ 252 EQ_STALLED = (1 << 3), /* currently stalled */ 253}; --- 84 unchanged lines hidden (view full) --- 338enum { 339 RXQ_LRO_ENABLED = (1 << 0) 340}; 341/* rxq: SGE ingress queue + SGE free list + miscellaneous items */ 342struct sge_rxq { 343 struct sge_iq iq; /* MUST be first */ 344 struct sge_fl fl; 345 |
345 unsigned int flags; | |
346 struct ifnet *ifp; /* the interface this rxq belongs to */ | 346 struct ifnet *ifp; /* the interface this rxq belongs to */ |
347 unsigned int flags; 348#ifdef INET |
|
347 struct lro_ctrl lro; /* LRO state */ | 349 struct lro_ctrl lro; /* LRO state */ |
350#endif |
|
348 349 /* stats for common events first */ 350 351 uint64_t rxcsum; /* # of times hardware assisted with checksum */ 352 uint64_t vlan_extraction;/* # of times VLAN tag was extracted */ 353 354 /* stats for not-that-common events */ 355 --- 222 unchanged lines hidden --- | 351 352 /* stats for common events first */ 353 354 uint64_t rxcsum; /* # of times hardware assisted with checksum */ 355 uint64_t vlan_extraction;/* # of times VLAN tag was extracted */ 356 357 /* stats for not-that-common events */ 358 --- 222 unchanged lines hidden --- |