Lines Matching defs:channel
281 * @channel: Channel for rx or tx handle
288 void vxge_hw_channel_msix_mask(struct __vxge_hw_channel *channel, int msix_id)
293 &channel->common_reg->set_msix_mask_vect[msix_id%4]);
298 * @channel: Channel for rx or tx handle
306 vxge_hw_channel_msix_unmask(struct __vxge_hw_channel *channel, int msix_id)
311 &channel->common_reg->clear_msix_mask_vect[msix_id%4]);
316 * @channel: Channel for rx or tx handle
324 void vxge_hw_channel_msix_clear(struct __vxge_hw_channel *channel, int msix_id)
328 &channel->common_reg->clr_msix_one_shot_vec[msix_id % 4]);
985 * vxge_hw_channel_dtr_alloc - Allocate a dtr from the channel
986 * @channel: Channel
994 vxge_hw_channel_dtr_alloc(struct __vxge_hw_channel *channel, void **dtrh)
996 if (channel->reserve_ptr - channel->reserve_top > 0) {
998 *dtrh = channel->reserve_arr[--channel->reserve_ptr];
1009 if (channel->length - channel->free_ptr > 0) {
1010 swap(channel->reserve_arr, channel->free_arr);
1011 channel->reserve_ptr = channel->length;
1012 channel->reserve_top = channel->free_ptr;
1013 channel->free_ptr = channel->length;
1015 channel->stats->reserve_free_swaps_cnt++;
1020 channel->stats->full_cnt++;
1027 * vxge_hw_channel_dtr_post - Post a dtr to the channel
1035 vxge_hw_channel_dtr_post(struct __vxge_hw_channel *channel, void *dtrh)
1037 vxge_assert(channel->work_arr[channel->post_index] == NULL);
1039 channel->work_arr[channel->post_index++] = dtrh;
1042 if (channel->post_index == channel->length)
1043 channel->post_index = 0;
1048 * @channel: Channel
1055 vxge_hw_channel_dtr_try_complete(struct __vxge_hw_channel *channel, void **dtrh)
1057 vxge_assert(channel->compl_index < channel->length);
1059 *dtrh = channel->work_arr[channel->compl_index];
1065 * @channel: Channel handle
1070 void vxge_hw_channel_dtr_complete(struct __vxge_hw_channel *channel)
1072 channel->work_arr[channel->compl_index] = NULL;
1075 if (++channel->compl_index == channel->length)
1076 channel->compl_index = 0;
1078 channel->stats->total_compl_cnt++;
1083 * @channel: Channel handle
1089 void vxge_hw_channel_dtr_free(struct __vxge_hw_channel *channel, void *dtrh)
1091 channel->free_arr[--channel->free_ptr] = dtrh;
1096 * @channel: Channel handle. Obtained via vxge_hw_channel_open().
1101 int vxge_hw_channel_dtr_count(struct __vxge_hw_channel *channel)
1103 return (channel->reserve_ptr - channel->reserve_top) +
1104 (channel->length - channel->free_ptr);
1114 * and posting on the corresponding channel (@channelh)
1125 struct __vxge_hw_channel *channel;
1127 channel = &ring->channel;
1129 status = vxge_hw_channel_dtr_alloc(channel, rxdh);
1167 struct __vxge_hw_channel *channel;
1169 channel = &ring->channel;
1171 vxge_hw_channel_dtr_free(channel, rxdh);
1184 struct __vxge_hw_channel *channel;
1186 channel = &ring->channel;
1188 vxge_hw_channel_dtr_post(channel, rxdh);
1221 struct __vxge_hw_channel *channel;
1223 channel = &ring->channel;
1228 vxge_hw_channel_dtr_post(channel, rxdh);
1283 struct __vxge_hw_channel *channel;
1288 channel = &ring->channel;
1290 vxge_hw_channel_dtr_try_complete(channel, rxdh);
1309 vxge_hw_channel_dtr_complete(channel);
1400 return vxge_hw_channel_dtr_count(&fifoh->channel);
1412 * and posting on the corresponding channel (@channelh)
1427 struct __vxge_hw_channel *channel;
1431 channel = &fifo->channel;
1433 status = vxge_hw_channel_dtr_alloc(channel, txdlh);
1513 * vxge_hw_fifo_txdl_post - Post descriptor on the fifo channel.
1517 * Post descriptor on the 'fifo' type channel for transmission.
1536 vxge_hw_channel_dtr_post(&fifo->channel, txdlh);
1560 * HW uses channel callback (*vxge_hw_channel_callback_f) to notifiy
1568 * channel callback, or in a deferred fashion and separate (from HW)
1587 struct __vxge_hw_channel *channel;
1591 channel = &fifo->channel;
1593 vxge_hw_channel_dtr_try_complete(channel, txdlh);
1606 vxge_hw_channel_dtr_complete(channel);
1680 struct __vxge_hw_channel *channel;
1682 channel = &fifo->channel;
1684 vxge_hw_channel_dtr_free(channel, txdlh);
2367 t_code, ring->channel.userdata);
2416 struct __vxge_hw_channel *channel;
2418 channel = &fifo->channel;
2424 channel->userdata, skb_ptr, nr_skb, more) != VXGE_HW_OK)