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

Function virtqueue_rxvq_flush_packed

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

Flush used descs */

Source from the content-addressed store, hash-verified

61
62/* Flush used descs */
63static void
64virtqueue_rxvq_flush_packed(struct virtqueue *vq)
65{
66 struct vq_desc_extra *dxp;
67 uint16_t i;
68
69 struct vring_packed_desc *descs = vq->vq_packed.ring.desc;
70 int cnt = 0;
71
72 i = vq->vq_used_cons_idx;
73 while (desc_is_used(&descs[i], vq) && cnt++ < vq->vq_nentries) {
74 dxp = &vq->vq_descx[descs[i].id];
75 if (dxp->cookie != NULL) {
76 rte_pktmbuf_free(dxp->cookie);
77 dxp->cookie = NULL;
78 }
79 vq->vq_free_cnt++;
80 vq->vq_used_cons_idx++;
81 if (vq->vq_used_cons_idx >= vq->vq_nentries) {
82 vq->vq_used_cons_idx -= vq->vq_nentries;
83 vq->vq_packed.used_wrap_counter ^= 1;
84 }
85 i = vq->vq_used_cons_idx;
86 }
87}
88
89/* Flush the elements in the used ring. */
90static void

Callers 1

virtqueue_rxvq_flushFunction · 0.85

Calls 2

desc_is_usedFunction · 0.85
rte_pktmbuf_freeFunction · 0.85

Tested by

no test coverage detected