MCPcopy Create free account
hub / github.com/F-Stack/f-stack / virtqueue_txvq_reset_packed

Function virtqueue_txvq_reset_packed

dpdk/drivers/net/virtio/virtqueue.c:232–265  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

230}
231
232int
233virtqueue_txvq_reset_packed(struct virtqueue *vq)
234{
235 int size = vq->vq_nentries;
236 struct vq_desc_extra *dxp;
237 uint16_t desc_idx;
238
239 vq->vq_used_cons_idx = 0;
240 vq->vq_desc_head_idx = 0;
241 vq->vq_avail_idx = 0;
242 vq->vq_desc_tail_idx = (uint16_t)(vq->vq_nentries - 1);
243 vq->vq_free_cnt = vq->vq_nentries;
244
245 vq->vq_packed.used_wrap_counter = 1;
246 vq->vq_packed.cached_flags = VRING_PACKED_DESC_F_AVAIL;
247 vq->vq_packed.event_flags_shadow = 0;
248
249 memset(vq->mz->addr, 0, vq->mz->len);
250 memset(vq->txq.hdr_mz->addr, 0, vq->txq.hdr_mz->len);
251
252 for (desc_idx = 0; desc_idx < vq->vq_nentries; desc_idx++) {
253 dxp = &vq->vq_descx[desc_idx];
254 if (dxp->cookie != NULL) {
255 rte_pktmbuf_free(dxp->cookie);
256 dxp->cookie = NULL;
257 }
258 }
259
260 virtqueue_txq_indirect_headers_init(vq);
261 vring_desc_init_packed(vq, size);
262 virtqueue_disable_intr(vq);
263
264 return 0;
265}
266
267
268static void

Callers 1

Calls 5

memsetFunction · 0.85
rte_pktmbuf_freeFunction · 0.85
vring_desc_init_packedFunction · 0.85
virtqueue_disable_intrFunction · 0.70

Tested by

no test coverage detected