Lines Matching defs:qe

579 	struct vq_entry *qe;
586 qe = list_remove_head(&vq->vq_freelist);
593 qe->qe_next = NULL;
594 qe->qe_indirect_next = 0;
595 (void) memset(qe->qe_desc, 0, sizeof (struct vring_desc));
597 return (qe);
601 vq_free_entry(struct virtqueue *vq, struct vq_entry *qe)
605 list_insert_head(&vq->vq_freelist, qe);
638 virtio_ve_set(struct vq_entry *qe, uint64_t paddr, uint32_t len,
641 virtio_ve_set_desc(qe->qe_desc, paddr, len, write);
645 virtio_ve_indirect_available(struct vq_entry *qe)
647 return (qe->qe_queue->vq_indirect_num - (qe->qe_indirect_next - 1));
651 virtio_ve_add_indirect_buf(struct vq_entry *qe, uint64_t paddr, uint32_t len,
656 ASSERT(qe->qe_queue->vq_indirect_num);
657 ASSERT(qe->qe_indirect_next < qe->qe_queue->vq_indirect_num);
659 indirect_desc = &qe->qe_indirect_descs[qe->qe_indirect_next];
661 qe->qe_indirect_next++;
665 virtio_ve_add_cookie(struct vq_entry *qe, ddi_dma_handle_t dma_handle,
671 virtio_ve_add_indirect_buf(qe, dma_cookie.dmac_laddress,
703 virtio_push_chain(struct vq_entry *qe, boolean_t sync)
705 struct virtqueue *vq = qe->qe_queue;
706 struct vq_entry *head = qe;
710 ASSERT(qe);
718 if (qe->qe_indirect_next > 1) {
725 virtio_ve_set_desc(qe->qe_desc,
726 qe->qe_indirect_dma_cookie.dmac_laddress,
727 sizeof (struct vring_desc) * qe->qe_indirect_next,
729 qe->qe_desc->flags |= VRING_DESC_F_INDIRECT;
733 desc = &qe->qe_indirect_descs[i];
738 } while (i < qe->qe_indirect_next - 1);
742 if (qe->qe_next) {
743 qe->qe_desc->flags |= VRING_DESC_F_NEXT;
744 qe->qe_desc->next = qe->qe_next->qe_index;
747 qe = qe->qe_next;
748 } while (qe);
801 virtio_free_chain(struct vq_entry *qe)
804 struct virtqueue *vq = qe->qe_queue;
806 ASSERT(qe);
809 ASSERT(qe->qe_queue == vq);
810 tmp = qe->qe_next;
811 vq_free_entry(vq, qe);
812 qe = tmp;