Lines Matching +full:use +full:- +full:ring +full:- +full:sense

4  * Copyright (C) 2008-2022, VMware, Inc. All Rights Reserved.
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
23 * Maintained by: pv-drivers@vmware.com
66 # define VMXNET3_DRIVER_VERSION_REPORT VMXNET3_DRIVER_VERSION_STRING"-NAPI(debug)"
68 # define VMXNET3_DRIVER_VERSION_REPORT VMXNET3_DRIVER_VERSION_STRING"-NAPI"
75 #define VMXNET3_DRIVER_VERSION_STRING "1.7.0.0-k"
77 /* Each byte of this 32-bit integer encodes a version number in
83 /* RSS only makes sense if MSI-X is supported. */
100 VMNET_CAP_SG = 0x0001, /* Can do scatter-gather transmits. */
116 VMNET_CAP_TX_CHAIN = 0x4000, /* Guest can use multiple tx entries
121 VMNET_CAP_SG_SPAN_PAGES = 0x40000, /* Scatter-gather can span multiple*/
147 vmxnet3_cmd_ring_adv_next2fill(struct vmxnet3_cmd_ring *ring) in vmxnet3_cmd_ring_adv_next2fill() argument
149 ring->next2fill++; in vmxnet3_cmd_ring_adv_next2fill()
150 if (unlikely(ring->next2fill == ring->size)) { in vmxnet3_cmd_ring_adv_next2fill()
151 ring->next2fill = 0; in vmxnet3_cmd_ring_adv_next2fill()
152 VMXNET3_FLIP_RING_GEN(ring->gen); in vmxnet3_cmd_ring_adv_next2fill()
157 vmxnet3_cmd_ring_adv_next2comp(struct vmxnet3_cmd_ring *ring) in vmxnet3_cmd_ring_adv_next2comp() argument
159 VMXNET3_INC_RING_IDX_ONLY(ring->next2comp, ring->size); in vmxnet3_cmd_ring_adv_next2comp()
163 vmxnet3_cmd_ring_desc_avail(struct vmxnet3_cmd_ring *ring) in vmxnet3_cmd_ring_desc_avail() argument
165 return (ring->next2comp > ring->next2fill ? 0 : ring->size) + in vmxnet3_cmd_ring_desc_avail()
166 ring->next2comp - ring->next2fill - 1; in vmxnet3_cmd_ring_desc_avail()
179 vmxnet3_comp_ring_adv_next2proc(struct vmxnet3_comp_ring *ring) in vmxnet3_comp_ring_adv_next2proc() argument
181 ring->next2proc++; in vmxnet3_comp_ring_adv_next2proc()
182 if (unlikely(ring->next2proc == ring->size)) { in vmxnet3_comp_ring_adv_next2proc()
183 ring->next2proc = 0; in vmxnet3_comp_ring_adv_next2proc()
184 VMXNET3_FLIP_RING_GEN(ring->gen); in vmxnet3_comp_ring_adv_next2proc()
243 u32 copy_size; /* # of bytes copied into the data ring */
318 u32 qid; /* rqID in RCD for buffer from 1st ring */
319 u32 qid2; /* rqID in RCD for buffer from 2nd ring */
320 u32 dataRingQid; /* rqID in RCD for buffer from data ring */
344 enum vmxnet3_intr_type type; /* MSI-X, MSI, or INTx? */
388 int rx_buf_per_pkt; /* only apply to the 1st ring */
393 /* Wake-on-LAN */
401 /* Ring sizes */
406 /* Size of buffer in the data ring */
438 writel((val), (adapter)->hw_addr0 + (reg))
440 readl((adapter)->hw_addr0 + (reg))
443 writel((val), (adapter)->hw_addr1 + (reg))
445 readl((adapter)->hw_addr1 + (reg))
449 ((rq)->rx_ring[ring_idx].size >> 3)
455 (adapter->version >= VMXNET3_REV_2 + 1)
457 (adapter->version >= VMXNET3_REV_3 + 1)
459 (adapter->version >= VMXNET3_REV_4 + 1)
461 (adapter->version >= VMXNET3_REV_5 + 1)
463 (adapter->version >= VMXNET3_REV_6 + 1)
465 (adapter->version >= VMXNET3_REV_7 + 1)
478 ((rqID >= adapter->num_rx_queues && \
479 rqID < 2 * adapter->num_rx_queues) ? 1 : 0) \
482 (rqID >= 2 * adapter->num_rx_queues && \
483 rqID < 3 * adapter->num_rx_queues) \