Lines Matching refs:vring

53 	struct vring *vring = &dev->vrings[queue_sel];  in virtio_user_kick_queue()  local
69 addr.desc_user_addr = (uint64_t)(uintptr_t)vring->desc; in virtio_user_kick_queue()
70 addr.avail_user_addr = (uint64_t)(uintptr_t)vring->avail; in virtio_user_kick_queue()
71 addr.used_user_addr = (uint64_t)(uintptr_t)vring->used; in virtio_user_kick_queue()
75 state.num = vring->num; in virtio_user_kick_queue()
655 virtio_user_handle_ctrl_msg(struct virtio_user_dev *dev, struct vring *vring, in virtio_user_handle_ctrl_msg() argument
664 idx_data = vring->desc[idx_hdr].next; in virtio_user_handle_ctrl_msg()
668 while (vring->desc[i].flags == VRING_DESC_F_NEXT) { in virtio_user_handle_ctrl_msg()
669 i = vring->desc[i].next; in virtio_user_handle_ctrl_msg()
677 hdr = (void *)(uintptr_t)vring->desc[idx_hdr].addr; in virtio_user_handle_ctrl_msg()
682 queues = *(uint16_t *)(uintptr_t)vring->desc[idx_data].addr; in virtio_user_handle_ctrl_msg()
691 *(virtio_net_ctrl_ack *)(uintptr_t)vring->desc[idx_status].addr = status; in virtio_user_handle_ctrl_msg()
707 struct vring_packed *vring, in virtio_user_handle_ctrl_msg_packed() argument
724 while (vring->desc[idx_status].flags & VRING_DESC_F_NEXT) { in virtio_user_handle_ctrl_msg_packed()
731 hdr = (void *)(uintptr_t)vring->desc[idx_hdr].addr; in virtio_user_handle_ctrl_msg_packed()
737 vring->desc[idx_data].addr; in virtio_user_handle_ctrl_msg_packed()
747 vring->desc[idx_status].addr = status; in virtio_user_handle_ctrl_msg_packed()
750 vring->desc[idx_hdr].id = vring->desc[idx_status].id; in virtio_user_handle_ctrl_msg_packed()
751 vring->desc[idx_hdr].len = sizeof(status); in virtio_user_handle_ctrl_msg_packed()
760 struct vring_packed *vring = &dev->packed_vrings[queue_idx]; in virtio_user_handle_cq_packed() local
767 while (desc_is_avail(&vring->desc[vq->used_idx], in virtio_user_handle_cq_packed()
770 n_descs = virtio_user_handle_ctrl_msg_packed(dev, vring, in virtio_user_handle_cq_packed()
777 __atomic_store_n(&vring->desc[vq->used_idx].flags, flags, in virtio_user_handle_cq_packed()
794 struct vring *vring = &dev->vrings[queue_idx]; in virtio_user_handle_cq() local
797 while (__atomic_load_n(&vring->used->idx, __ATOMIC_RELAXED) in virtio_user_handle_cq()
798 != vring->avail->idx) { in virtio_user_handle_cq()
799 avail_idx = __atomic_load_n(&vring->used->idx, __ATOMIC_RELAXED) in virtio_user_handle_cq()
800 & (vring->num - 1); in virtio_user_handle_cq()
801 desc_idx = vring->avail->ring[avail_idx]; in virtio_user_handle_cq()
803 n_descs = virtio_user_handle_ctrl_msg(dev, vring, desc_idx); in virtio_user_handle_cq()
806 uep = &vring->used->ring[avail_idx]; in virtio_user_handle_cq()
810 __atomic_add_fetch(&vring->used->idx, 1, __ATOMIC_RELAXED); in virtio_user_handle_cq()