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

Function virtio_net_ctrl_push

dpdk/lib/vhost/virtio_net_ctrl.c:222–242  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

220}
221
222static int
223virtio_net_ctrl_push(struct virtio_net *dev, struct virtio_net_ctrl_elem *ctrl_elem)
224{
225 struct vhost_virtqueue *cvq = dev->cvq;
226 struct vring_used_elem *used_elem;
227
228 used_elem = &cvq->used->ring[cvq->last_used_idx & (cvq->size - 1)];
229 used_elem->id = ctrl_elem->head_idx;
230 used_elem->len = sizeof(*ctrl_elem->desc_ack);
231
232 cvq->last_used_idx++;
233
234 rte_atomic_store_explicit((unsigned short __rte_atomic *)&cvq->used->idx,
235 cvq->last_used_idx, rte_memory_order_release);
236
237 vhost_vring_call_split(dev, dev->cvq);
238
239 free(ctrl_elem->ctrl_req);
240
241 return 0;
242}
243
244int
245virtio_net_ctrl_handle(struct virtio_net *dev)

Callers 1

virtio_net_ctrl_handleFunction · 0.85

Calls 2

vhost_vring_call_splitFunction · 0.85
freeFunction · 0.50

Tested by

no test coverage detected