vu_queue_fill(VuDev *dev, VuVirtq *vq,

              const VuVirtqElement *elem,

              unsigned int len, unsigned int idx)

{

    struct vring_used_elem uelem;



    if (unlikely(dev->broken)) {

        return;

    }



    vu_log_queue_fill(dev, vq, elem, len);



    idx = (idx + vq->used_idx) % vq->vring.num;



    uelem.id = elem->index;

    uelem.len = len;

    vring_used_write(dev, vq, &uelem, idx);

}

vu_queue_fill(VuDev *dev, VuVirtq *vq,

              const VuVirtqElement *elem,

              unsigned int len, unsigned int idx)

{

    struct vring_used_elem uelem;



    if (unlikely(dev->broken)) {

        return;

    }



    vu_log_queue_fill(dev, vq, elem, len);



    idx = (idx + vq->used_idx) % vq->vring.num;



    uelem.id = elem->index;

    uelem.len = len;

    vring_used_write(dev, vq, &uelem, idx);

}

    if (unlikely(dev->broken)) {     if (unlikely(dev->broken)) {     if (unlikely(dev->broken)) {     if (unlikely(dev->broken)) {
FUNC_0(VuDev *VAR_0, VuVirtq *VAR_1,

              const VuVirtqElement *VAR_2,

              unsigned int VAR_3, unsigned int VAR_4)

{

    struct vring_used_elem VAR_5;



    if (unlikely(VAR_0->broken)) {

        return;

    }



    vu_log_queue_fill(VAR_0, VAR_1, VAR_2, VAR_3);



    VAR_4 = (VAR_4 + VAR_1->used_idx) % VAR_1->vring.num;



    VAR_5.id = VAR_2->index;

    VAR_5.VAR_3 = VAR_3;

    vring_used_write(VAR_0, VAR_1, &VAR_5, VAR_4);

}

FUNC_0(VuDev *VAR_0, VuVirtq *VAR_1,
const VuVirtqElement *VAR_2,
unsigned int VAR_3, unsigned int VAR_4)
{ struct vring_used_elem VAR_5; if (unlikely(VAR_0->broken)) { return; } vu_log_queue_fill(VAR_0, VAR_1, VAR_2, VAR_3); VAR_4 = (VAR_4 + VAR_1->used_idx) % VAR_1->vring.num; VAR_5.id = VAR_2->index; VAR_5.VAR_3 = VAR_3; vring_used_write(VAR_0, VAR_1, &VAR_5, VAR_4); }