virtio_rw16
mq->virtqueue_pairs = virtio_rw16(sc->sc_virtio, nvq_pairs);
while ((vd->flags & virtio_rw16(sc, VRING_DESC_F_NEXT)) != 0) {
s = virtio_rw16(sc, vd->next);
vq->vq_free_idx = virtio_rw16(sc, slot);
KASSERT((vd->flags & virtio_rw16(sc, VRING_DESC_F_NEXT)) == 0);
vd->flags = virtio_rw16(sc, VRING_DESC_F_INDIRECT);
vd[i].flags = virtio_rw16(sc, VRING_DESC_F_NEXT);
vd[i].flags = virtio_rw16(sc, 0);
vd->next = virtio_rw16(sc, s);
vd->flags = virtio_rw16(sc, VRING_DESC_F_NEXT);
vds[s].flags |= virtio_rw16(sc, VRING_DESC_F_WRITE);
if ((vds[s].flags & virtio_rw16(sc, VRING_DESC_F_NEXT)) == 0) {
s = virtio_rw16(sc, vds[s].next);
vds[s].flags |= virtio_rw16(sc, VRING_DESC_F_WRITE);
if ((vds[s].flags & virtio_rw16(sc, VRING_DESC_F_NEXT)) == 0) {
s = virtio_rw16(sc, vds[s].next);
virtio_rw16(sc, slot);
o = virtio_rw16(sc, vq->vq_avail->idx) - 1;
vq->vq_avail->idx = virtio_rw16(sc, vq->vq_avail_idx);
t = virtio_rw16(sc, *vq->vq_avail_event) + 1;
flags = virtio_rw16(sc, vq->vq_used->flags);
if (vq->vq_used_idx == virtio_rw16(sc, vq->vq_used->idx))
if (vq->vq_used_idx == virtio_rw16(sc, vq->vq_used->idx)) {
*vq->vq_used_event = virtio_rw16(sc, idx);
(virtio_rw16(sc, vq->vq_used->idx) - vq->vq_used_idx);
(virtio_rw16(sc, vq->vq_avail->idx) - vq->vq_used_idx) * 3 / 4;
(virtio_rw16(sc, vq->vq_avail->idx) - vq->vq_used_idx);
*vq->vq_used_event = virtio_rw16(sc, vq->vq_used_idx + 0x8000);
virtio_rw16(sc, VRING_AVAIL_F_NO_INTERRUPT);
*vq->vq_used_event = virtio_rw16(sc, vq->vq_used_idx);
~virtio_rw16(sc, VRING_AVAIL_F_NO_INTERRUPT);
if (vq->vq_used_idx == virtio_rw16(sc, vq->vq_used->idx)) {
vds[i].next = virtio_rw16(sc, i + 1);
vds[i].next = virtio_rw16(sc, VRING_DESC_CHAIN_END);
vd[j].next = virtio_rw16(sc, j + 1);
while (s != virtio_rw16(sc, VRING_DESC_CHAIN_END)) {
head = tail = virtio_rw16(sc, vq->vq_free_idx);
vd->flags = virtio_rw16(sc, VRING_DESC_F_NEXT);
tail = virtio_rw16(sc, vd->next);
vd->flags = virtio_rw16(sc, 0);
uint16_t virtio_rw16(struct virtio_softc *sc, uint16_t val);