Lines Matching defs:rx_data

59 	ixgbe_rx_data_t	*rx_data;
65 rx_data = recycle_rcb->rx_data;
66 rx_ring = rx_data->rx_ring;
90 mutex_enter(&rx_data->recycle_lock);
92 free_index = rx_data->rcb_tail;
93 ASSERT(rx_data->free_list[free_index] == NULL);
95 rx_data->free_list[free_index] = recycle_rcb;
96 rx_data->rcb_tail = NEXT_INDEX(free_index, 1, rx_data->free_list_size);
98 mutex_exit(&rx_data->recycle_lock);
105 atomic_inc_32(&rx_data->rcb_free);
106 ASSERT(rx_data->rcb_free <= rx_data->free_list_size);
123 atomic_dec_32(&rx_data->rcb_pending);
127 * When there is not any buffer belonging to this rx_data
128 * held by the upper layer, the rx_data can be freed.
130 if ((rx_data->flag & IXGBE_RX_STOPPED) &&
131 (rx_data->rcb_pending == 0))
132 ixgbe_free_rx_ring_data(rx_data);
145 ixgbe_rx_copy(ixgbe_rx_data_t *rx_data, uint32_t index, uint32_t pkt_len)
151 ixgbe = rx_data->rx_ring->ixgbe;
152 current_rcb = rx_data->work_list[index];
189 ixgbe_rx_bind(ixgbe_rx_data_t *rx_data, uint32_t index, uint32_t pkt_len)
195 ixgbe_t *ixgbe = rx_data->rx_ring->ixgbe;
202 if (ixgbe_atomic_reserve(&rx_data->rcb_free, 1) < 0)
205 current_rcb = rx_data->work_list[index];
221 atomic_inc_32(&rx_data->rcb_free);
233 atomic_inc_32(&rx_data->rcb_free);
248 free_index = rx_data->rcb_head;
249 free_rcb = rx_data->free_list[free_index];
251 rx_data->free_list[free_index] = NULL;
252 rx_data->rcb_head = NEXT_INDEX(free_index, 1, rx_data->free_list_size);
257 rx_data->work_list[index] = free_rcb;
269 ixgbe_lro_bind(ixgbe_rx_data_t *rx_data, uint32_t lro_start,
282 ixgbe_t *ixgbe = rx_data->rx_ring->ixgbe;
289 if (ixgbe_atomic_reserve(&rx_data->rcb_free, lro_num) < 0)
291 current_rcb = rx_data->work_list[lro_start];
307 atomic_add_32(&rx_data->rcb_free, lro_num);
327 atomic_add_32(&rx_data->rcb_free, lro_num);
333 current_rcb = rx_data->work_list[lro_next];
340 current_rcb = rx_data->work_list[lro_next];
341 current_rbd = &rx_data->rbd_ring[lro_next];
357 free_index = rx_data->rcb_head;
358 free_rcb = rx_data->free_list[free_index];
360 rx_data->free_list[free_index] = NULL;
361 rx_data->rcb_head = NEXT_INDEX(free_index, 1,
362 rx_data->free_list_size);
367 rx_data->work_list[lro_next] = free_rcb;
376 current_rcb = rx_data->work_list[lro_next];
377 current_rbd = &rx_data->rbd_ring[lro_next];
389 ixgbe_lro_copy(ixgbe_rx_data_t *rx_data, uint32_t lro_start,
400 ixgbe = rx_data->rx_ring->ixgbe;
411 current_rcb = rx_data->work_list[lro_start];
427 current_rcb = rx_data->work_list[lro_next];
430 current_rcb = rx_data->work_list[lro_next];
431 current_rbd = &rx_data->rbd_ring[lro_next];
457 current_rcb = rx_data->work_list[lro_next];
458 current_rbd = &rx_data->rbd_ring[lro_next];
468 ixgbe_lro_get_start(ixgbe_rx_data_t *rx_data, uint32_t rx_next)
474 rx_control_block_t *current_rcb = rx_data->work_list[rx_next];
479 prev_rcb = rx_data->work_list[lro_prev];
483 rx_data->lro_num = lro_num;
491 ixgbe_lro_get_first(ixgbe_rx_data_t *rx_data, uint32_t rx_next)
495 lro_first = rx_data->lro_first;
496 current_rcb = rx_data->work_list[lro_first];
498 lro_first = NEXT_INDEX(lro_first, 1, rx_data->ring_size);
499 current_rcb = rx_data->work_list[lro_first];
501 rx_data->lro_first = lro_first;
561 ixgbe_rx_data_t *rx_data;
569 rx_data = rx_ring->rx_data;
577 DMA_SYNC(&rx_data->rbd_area, DDI_DMA_SYNC_FORKERNEL);
579 if (ixgbe_check_dma_handle(rx_data->rbd_area.dma_handle) != DDI_FM_OK) {
589 rx_next = rx_data->rbd_next;
590 current_rbd = &rx_data->rbd_ring[rx_next];
619 if (rx_data->work_list[rx_next]->
622 ixgbe_lro_get_start(rx_data,
626 (rx_data->lro_num - 1) *
634 rx_data->work_list[lro_next]->lro_prev
636 rx_data->work_list[rx_next]->lro_next =
638 rx_data->work_list[rx_next]->lro_pkt =
668 mp = ixgbe_lro_bind(rx_data, lro_start,
669 rx_data->lro_num, pkt_len);
671 mp = ixgbe_lro_copy(rx_data, lro_start,
672 rx_data->lro_num, pkt_len);
674 rx_data->lro_num = 0;
678 mp = ixgbe_rx_bind(rx_data, rx_next, pkt_len);
681 mp = ixgbe_rx_copy(rx_data, rx_next, pkt_len);
698 current_rcb = rx_data->work_list[rx_next];
711 rx_next = NEXT_INDEX(rx_next, 1, rx_data->ring_size);
723 current_rbd = &rx_data->rbd_ring[rx_next];
730 DMA_SYNC(&rx_data->rbd_area, DDI_DMA_SYNC_FORDEV);
732 rx_data->rbd_next = rx_next;
738 lro_first = ixgbe_lro_get_first(rx_data, rx_next);
739 rx_tail = PREV_INDEX(lro_first, 1, rx_data->ring_size);
741 rx_tail = PREV_INDEX(rx_next, 1, rx_data->ring_size);