int virtqueue_postpone_intr(struct virtqueue *vq) { uint16_t ndesc, avail_idx; /* * Request the next interrupt be postponed until at least half * of the available descriptors have been consumed. */ avail_idx = vq->vq_ring.avail->idx; ndesc = (uint16_t)(avail_idx - vq->vq_used_cons_idx) / 2; return (vq_ring_enable_interrupt(vq, ndesc)); }
/** * virtqueue_enable_cb - Enables callback generation * * @param vq - Pointer to VirtIO queue control block * * @return - Function status */ int virtqueue_enable_cb(struct virtqueue *vq) { return (vq_ring_enable_interrupt(vq, 0)); }