Lines Matching refs:rcb

141  * control block entry as rcb.
144 * * ... 1/2 of all initial rcb's ... *
148 * | rcb on free list |---*---------->| rcb on work list |
151 * | replace rcb * . . Frame received,
153 * | MAC + co. | available. rcb's
157 * | loaned rcb |
160 * +--------------------<-----| rcb loaned to MAC |
620 * This function is called once the last pending rcb has been freed by the upper
688 i40e_error(i40e, "failed to allocate a %d entry rcb area for "
706 * rcb, we'll iterate over it and if we send the reference count to zero, then
716 i40e_rx_control_block_t *rcb;
725 rcb = rxd->rxd_rcb_area;
728 for (i = 0; i < count; i++, rcb++) {
729 VERIFY(rcb != NULL);
739 if (failed_init == B_TRUE && rcb->rcb_ref == 0)
742 ref = atomic_dec_32_nv(&rcb->rcb_ref);
744 freemsg(rcb->rcb_mp);
745 rcb->rcb_mp = NULL;
746 i40e_free_dma_buffer(&rcb->rcb_dma);
764 i40e_rx_control_block_t *rcb;
784 rcb = rxd->rxd_rcb_area;
788 for (i = 0; i < count; i++, rcb++) {
790 VERIFY(rcb != NULL);
793 rxd->rxd_work_list[i] = rcb;
795 rxd->rxd_free_list[i - rxd->rxd_ring_size] = rcb;
798 dmap = &rcb->rcb_dma;
818 rcb->rcb_ref = 1;
819 rcb->rcb_rxd = rxd;
820 rcb->rcb_free_rtn.free_func = i40e_rx_recycle;
821 rcb->rcb_free_rtn.free_arg = (caddr_t)rcb;
822 rcb->rcb_mp = desballoc((unsigned char *)dmap->dmab_address,
823 dmap->dmab_size, 0, &rcb->rcb_free_rtn);
1073 i40e_rcb_free(i40e_rx_data_t *rxd, i40e_rx_control_block_t *rcb)
1078 rxd->rxd_free_list[rxd->rxd_rcb_free] = rcb;
1086 i40e_rx_control_block_t *rcb;
1094 rcb = rxd->rxd_free_list[rxd->rxd_rcb_free];
1095 VERIFY(rcb != NULL);
1099 return (rcb);
1111 i40e_rx_control_block_t *rcb;
1116 rcb = (i40e_rx_control_block_t *)arg;
1117 rxd = rcb->rcb_rxd;
1123 * reference because we're tearing down everything and this rcb is not
1126 if (rcb->rcb_ref == 0)
1133 rcb->rcb_mp = desballoc((unsigned char *)rcb->rcb_dma.dmab_address,
1134 rcb->rcb_dma.dmab_size, 0, &rcb->rcb_free_rtn);
1135 i40e_rcb_free(rxd, rcb);
1138 * It's possible that the rcb was being used while we are shutting down
1142 ref = atomic_dec_32_nv(&rcb->rcb_ref);
1144 freemsg(rcb->rcb_mp);
1145 rcb->rcb_mp = NULL;
1146 i40e_free_dma_buffer(&rcb->rcb_dma);
1171 i40e_rx_control_block_t *rcb, *rep_rcb;
1180 rcb = rxd->rxd_work_list[index];
1186 if (rcb->rcb_mp == NULL) {
1187 rcb->rcb_mp =
1188 desballoc((unsigned char *)rcb->rcb_dma.dmab_address,
1189 rcb->rcb_dma.dmab_size, 0, &rcb->rcb_free_rtn);
1190 if (rcb->rcb_mp == NULL) {
1192 i40e_rcb_free(rxd, rcb);
1197 I40E_DMA_SYNC(&rcb->rcb_dma, DDI_DMA_SYNC_FORKERNEL);
1199 if (i40e_check_dma_handle(rcb->rcb_dma.dmab_dma_handle) != DDI_FM_OK) {
1202 i40e_rcb_free(rxd, rcb);
1209 mp = rcb->rcb_mp;
1210 atomic_inc_32(&rcb->rcb_ref);
1228 i40e_rx_control_block_t *rcb;
1232 rcb = rxd->rxd_work_list[index];
1234 I40E_DMA_SYNC(&rcb->rcb_dma, DDI_DMA_SYNC_FORKERNEL);
1236 if (i40e_check_dma_handle(rcb->rcb_dma.dmab_dma_handle) != DDI_FM_OK) {
1249 bcopy(rcb->rcb_dma.dmab_address, mp->b_rptr, plen);
1373 i40e_rx_control_block_t *rcb;
1501 rcb = rxd->rxd_work_list[cur_head];
1503 CPU_TO_LE64((uintptr_t)rcb->rcb_dma.dmab_dma_address);