/qemu/subprojects/libvduse/ |
H A D | libvduse.c | 233 vq->used_idx = le16toh(vq->vring.used->idx); in vduse_queue_check_inflights() 247 vq->log->inflight.used_idx = vq->used_idx; in vduse_queue_check_inflights() 256 vq->shadow_avail_idx = vq->last_avail_idx = vq->inuse + vq->used_idx; in vduse_queue_check_inflights() 274 qsort(vq->resubmit_list, vq->resubmit_num, in vduse_queue_check_inflights() 309 vq->log->inflight.used_idx = vq->used_idx; in vduse_queue_inflight_post_put() 443 return vring_avail_ring(vq, vq->vring.num); in vring_get_used_event() 550 !vq->inuse && vduse_queue_empty(vq)) { in vduse_queue_should_notify() 561 new = vq->signalled_used = vq->used_idx; in vduse_queue_should_notify() 769 if (vq->inuse >= vq->vring.num) { in vduse_queue_pop() 812 idx = (idx + vq->used_idx) % vq->vring.num; in vduse_queue_fill() [all …]
|
H A D | libvduse.h | 30 void (*enable_queue)(VduseDev *dev, VduseVirtq *vq); 32 void (*disable_queue)(VduseDev *dev, VduseVirtq *vq); 67 VduseDev *vduse_queue_get_dev(VduseVirtq *vq); 77 int vduse_queue_get_fd(VduseVirtq *vq); 89 void *vduse_queue_pop(VduseVirtq *vq, size_t sz); 99 void vduse_queue_push(VduseVirtq *vq, const VduseVirtqElement *elem, 107 void vduse_queue_notify(VduseVirtq *vq);
|
/qemu/hw/virtio/ |
H A D | virtio.c | 231 VirtQueue *vq = &vdev->vq[n]; in virtio_init_region_cache() local 797 vq->last_avail_idx = vq->vring.num + vq->last_avail_idx - num; in virtqueue_packed_rewind() 979 vq->used_idx -= vq->vring.num; in virtqueue_packed_flush() 1856 while (!virtio_queue_empty(vq) && vq->inuse < vq->vring.num) { in virtqueue_split_drop_all() 2276 trace_virtio_queue_notify(vdev, vq - vdev->vq, vq); in virtio_queue_notify_vq() 2277 vq->handle_output(vdev, vq); in virtio_queue_notify_vq() 2287 VirtQueue *vq = &vdev->vq[n]; in virtio_queue_notify() local 2293 trace_virtio_queue_notify(vdev, vq - vdev->vq, vq); in virtio_queue_notify() 2297 vq->handle_output(vdev, vq); in virtio_queue_notify() 2313 VirtQueue *vq = &vdev->vq[n]; in virtio_queue_set_vector() local [all …]
|
H A D | vhost.c | 179 if (!vq->used_phys && !vq->used_size) { in vhost_sync_dirty_bitmap() 185 hwaddr used_phys = vq->used_phys, used_size = vq->used_size; in vhost_sync_dirty_bitmap() 226 range_get_last(vq->used_phys, vq->used_size)); in vhost_sync_dirty_bitmap() 467 vq->desc, vq->desc_phys, vq->desc_size, in vhost_verify_ring_mappings() 475 vq->avail, vq->avail_phys, vq->avail_size, in vhost_verify_ring_mappings() 483 vq->used, vq->used_phys, vq->used_size, in vhost_verify_ring_mappings() 1226 vq->desc_phys = a; in vhost_virtqueue_start() 1228 if (!vq->desc || l != s) { in vhost_virtqueue_start() 1242 if (!vq->used || l != s) { in vhost_virtqueue_start() 1371 int index = vq - dev->vqs; in vhost_virtqueue_error_notifier() [all …]
|
H A D | vhost-shadow-virtqueue.c | 346 } while (!virtio_queue_empty(svq->vq)); in vhost_handle_guest_kick() 465 virtqueue_push(svq->vq, elem, len); in vhost_svq_push_elem() 478 VirtQueue *vq = svq->vq; in vhost_svq_flush() local 497 virtqueue_flush(vq, i); in vhost_svq_flush() 503 virtqueue_flush(vq, i); in vhost_svq_flush() 668 svq->vq = vq; in vhost_svq_start() 697 if (!svq->vq) { in vhost_svq_stop() 720 svq->vq = NULL; in vhost_svq_stop() 753 VhostShadowVirtqueue *vq = pvq; in vhost_svq_free() local 754 vhost_svq_stop(vq); in vhost_svq_free() [all …]
|
/qemu/tests/qtest/libqos/ |
H A D | virtio.c | 245 vq->avail = vq->desc + vq->size * sizeof(struct vring_desc); in qvring_init() 246 vq->used = (uint64_t)((vq->avail + sizeof(uint16_t) * (3 + vq->size) in qvring_init() 261 qvirtio_writew(vq->vdev, qts, vq->avail + 4 + (2 * vq->size), 0); in qvring_init() 350 qvirtio_writeq(vq->vdev, qts, vq->desc + (16 * vq->free_head), data); in qvirtqueue_add() 352 qvirtio_writel(vq->vdev, qts, vq->desc + (16 * vq->free_head) + 8, len); in qvirtqueue_add() 354 qvirtio_writew(vq->vdev, qts, vq->desc + (16 * vq->free_head) + 12, flags); in qvirtqueue_add() 369 qvirtio_writeq(vq->vdev, qts, vq->desc + (16 * vq->free_head), in qvirtqueue_add_indirect() 372 qvirtio_writel(vq->vdev, qts, vq->desc + (16 * vq->free_head) + 8, in qvirtqueue_add_indirect() 375 qvirtio_writew(vq->vdev, qts, vq->desc + (16 * vq->free_head) + 12, in qvirtqueue_add_indirect() 432 (vq->last_used_idx % vq->size) * in qvirtqueue_get_buf() [all …]
|
H A D | virtio-mmio.c | 158 QVirtQueue *vq; in qvirtio_mmio_virtqueue_setup() local 161 vq = g_malloc0(sizeof(*vq)); in qvirtio_mmio_virtqueue_setup() 162 vq->vdev = d; in qvirtio_mmio_virtqueue_setup() 166 vq->index = index; in qvirtio_mmio_virtqueue_setup() 168 vq->free_head = 0; in qvirtio_mmio_virtqueue_setup() 169 vq->num_free = vq->size; in qvirtio_mmio_virtqueue_setup() 170 vq->align = dev->page_size; in qvirtio_mmio_virtqueue_setup() 180 g_assert_cmpint(vq->size & (vq->size - 1), ==, 0); in qvirtio_mmio_virtqueue_setup() 186 return vq; in qvirtio_mmio_virtqueue_setup() 192 guest_free(alloc, vq->desc); in qvirtio_mmio_virtqueue_cleanup() [all …]
|
H A D | virtio.h | 72 bool (*get_queue_isr_status)(QVirtioDevice *d, QVirtQueue *vq); 84 void (*set_queue_address)(QVirtioDevice *d, QVirtQueue *vq); 91 void (*virtqueue_cleanup)(QVirtQueue *vq, QGuestAllocator *alloc); 94 void (*virtqueue_kick)(QVirtioDevice *d, QVirtQueue *vq); 118 QVirtQueue *vq, gint64 timeout_us); 120 QVirtQueue *vq, 124 QVirtQueue *vq, 131 void qvirtqueue_cleanup(const QVirtioBus *bus, QVirtQueue *vq, 142 uint32_t qvirtqueue_add(QTestState *qts, QVirtQueue *vq, uint64_t data, 144 uint32_t qvirtqueue_add_indirect(QTestState *qts, QVirtQueue *vq, [all …]
|
H A D | virtio-pci.c | 216 vqpci->vq.vdev = d; in qvirtio_pci_virtqueue_setup_common() 217 vqpci->vq.index = index; in qvirtio_pci_virtqueue_setup_common() 219 vqpci->vq.free_head = 0; in qvirtio_pci_virtqueue_setup_common() 220 vqpci->vq.num_free = vqpci->vq.size; in qvirtio_pci_virtqueue_setup_common() 221 vqpci->vq.align = VIRTIO_PCI_VRING_ALIGN; in qvirtio_pci_virtqueue_setup_common() 230 g_assert_cmpint(vqpci->vq.size, !=, 0); in qvirtio_pci_virtqueue_setup_common() 233 g_assert_cmpint(vqpci->vq.size & (vqpci->vq.size - 1), ==, 0); in qvirtio_pci_virtqueue_setup_common() 238 d->bus->set_queue_address(d, &vqpci->vq); in qvirtio_pci_virtqueue_setup_common() 240 return &vqpci->vq; in qvirtio_pci_virtqueue_setup_common() 246 QVirtQueuePCI *vqpci = container_of(vq, QVirtQueuePCI, vq); in qvirtio_pci_virtqueue_cleanup_common() [all …]
|
H A D | virtio-pci-modern.c | 153 QVirtQueuePCI *vqpci = container_of(vq, QVirtQueuePCI, vq); in get_queue_isr_status() 208 vq->desc); in set_queue_address() 211 vq->desc >> 32); in set_queue_address() 215 vq->avail); in set_queue_address() 218 vq->avail >> 32); in set_queue_address() 222 vq->used); in set_queue_address() 225 vq->used >> 32); in set_queue_address() 232 QVirtQueue *vq; in virtqueue_setup() local 237 vqpci = container_of(vq, QVirtQueuePCI, vq); in virtqueue_setup() 249 return vq; in virtqueue_setup() [all …]
|
/qemu/linux-headers/asm-arm64/ |
H A D | sve_context.h | 42 #define __sve_vl_from_vq(vq) ((vq) * __SVE_VQ_BYTES) argument 44 #define __SVE_ZREG_SIZE(vq) ((__u32)(vq) * __SVE_VQ_BYTES) argument 45 #define __SVE_PREG_SIZE(vq) ((__u32)(vq) * (__SVE_VQ_BYTES / 8)) argument 46 #define __SVE_FFR_SIZE(vq) __SVE_PREG_SIZE(vq) argument 51 #define __SVE_ZREGS_SIZE(vq) \ argument 54 #define __SVE_PREGS_OFFSET(vq) \ argument 57 (__SVE_PREGS_OFFSET(vq) + __SVE_PREG_SIZE(vq) * (n)) 58 #define __SVE_PREGS_SIZE(vq) \ argument 59 (__SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - __SVE_PREGS_OFFSET(vq)) 61 #define __SVE_FFR_OFFSET(vq) \ argument [all …]
|
/qemu/subprojects/libvhost-user/ |
H A D | libvhost-user.c | 298 return !(vq->vring.desc && vq->vring.used && vq->vring.avail); in map_ring() 335 VuVirtq *vq = &dev->vq[i]; in unmap_rings() local 747 VuVirtq *vq = &dev->vq[index]; in vu_kick_cb() local 1207 VuVirtq *vq = &dev->vq[index]; in vu_set_vring_addr_exec() local 1238 vq->shadow_avail_idx = vq->last_avail_idx = vq->used_idx; in vu_set_vring_addr_exec() 1363 vq->shadow_avail_idx = vq->last_avail_idx = vq->inuse + vq->used_idx; in vu_check_queue_inflights() 1439 int qidx = vq - dev->vq; in vu_set_queue_handler() 1455 int qidx = vq - dev->vq; in vu_set_queue_host_notifier() 2182 VuVirtq *vq = &dev->vq[i]; in vu_deinit() local 2616 .index = vq - dev->vq, in _vu_queue_notify() [all …]
|
H A D | libvhost-user.h | 404 VuVirtq *vq; member 544 void vu_set_queue_handler(VuDev *dev, VuVirtq *vq, 617 bool vu_queue_enabled(VuDev *dev, VuVirtq *vq); 626 bool vu_queue_started(const VuDev *dev, const VuVirtq *vq); 635 bool vu_queue_empty(VuDev *dev, VuVirtq *vq); 644 void vu_queue_notify(VuDev *dev, VuVirtq *vq); 656 void vu_queue_notify_sync(VuDev *dev, VuVirtq *vq); 667 void *vu_queue_pop(VuDev *dev, VuVirtq *vq, size_t sz); 707 void vu_queue_fill(VuDev *dev, VuVirtq *vq, 720 void vu_queue_push(VuDev *dev, VuVirtq *vq, [all …]
|
/qemu/tests/qtest/ |
H A D | virtio-blk-test.c | 124 QVirtQueue *vq; in test_basic() local 136 vq = qvirtqueue_setup(dev, alloc, 0); in test_basic() 335 return vq; in test_basic() 341 QVirtQueue *vq; in basic() local 343 vq = test_basic(blk_if->vdev, t_alloc); in basic() 350 QVirtQueue *vq; in indirect() local 465 QVirtQueue *vq; in msix() local 574 QVirtQueue *vq; in idx() local 644 qvirtqueue_set_used_event(qts, vq, 2); in idx() 755 QVirtQueue *vq; in resize() local [all …]
|
H A D | vhost-user-blk-test.c | 130 qvirtqueue_kick(qts, dev, vq, free_head); in test_invalid_discard_write_zeroes() 155 qvirtqueue_kick(qts, dev, vq, free_head); in test_invalid_discard_write_zeroes() 226 QVirtQueue *vq; in test_basic() local 238 vq = qvirtqueue_setup(dev, alloc, 0); in test_basic() 444 return vq; in test_basic() 450 QVirtQueue *vq; in basic() local 452 vq = test_basic(blk_if->vdev, t_alloc); in basic() 459 QVirtQueue *vq; in indirect() local 482 vq = qvirtqueue_setup(dev, t_alloc, 0); in indirect() 544 QVirtQueue *vq; in idx() local [all …]
|
H A D | virtio-net-test.c | 32 QGuestAllocator *alloc, QVirtQueue *vq, in rx_test() argument 54 free_head = qvirtqueue_add(qts, vq, req_addr, 64, true, false); in rx_test() 55 qvirtqueue_kick(qts, dev, vq, free_head); in rx_test() 60 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in rx_test() 69 QGuestAllocator *alloc, QVirtQueue *vq, in tx_test() argument 83 qvirtqueue_kick(qts, dev, vq, free_head); in tx_test() 85 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in tx_test() 123 qvirtqueue_kick(qts, dev, vq, free_head); in rx_stop_cont_test() 139 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in rx_stop_cont_test() 293 QVirtQueue *vq = dev->queues[1]; in large_tx() local [all …]
|
H A D | virtio-iommu-test.c | 63 QVirtQueue *vq = v_iommu->vq; in send_attach_detach() local 81 qvirtqueue_add(qts, vq, wr_addr, wr_size, true, false); in send_attach_detach() 82 qvirtqueue_kick(qts, dev, vq, free_head); in send_attach_detach() 83 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in send_attach_detach() 105 QVirtQueue *vq = v_iommu->vq; in send_map() local 126 qvirtqueue_add(qts, vq, wr_addr, wr_size, true, false); in send_map() 127 qvirtqueue_kick(qts, dev, vq, free_head); in send_map() 128 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in send_map() 147 QVirtQueue *vq = v_iommu->vq; in send_unmap() local 167 qvirtqueue_kick(qts, dev, vq, free_head); in send_unmap() [all …]
|
/qemu/target/arm/ |
H A D | gdbstub64.c | 134 int vq, len = 0; in aarch64_gdb_get_sve_reg() local 135 for (vq = 0; vq < cpu->sve_max_vq; vq++) { in aarch64_gdb_get_sve_reg() 150 int vq, len = 0; in aarch64_gdb_get_sve_reg() local 151 for (vq = 0; vq < cpu->sve_max_vq; vq = vq + 4) { in aarch64_gdb_get_sve_reg() 163 return gdb_get_reg64(buf, vq * 2); in aarch64_gdb_get_sve_reg() 184 int vq, len = 0; in aarch64_gdb_set_sve_reg() local 186 for (vq = 0; vq < cpu->sve_max_vq; vq++) { in aarch64_gdb_set_sve_reg() 188 env->vfp.zregs[reg].d[vq * 2] = *p++; in aarch64_gdb_set_sve_reg() 202 int vq, len = 0; in aarch64_gdb_set_sve_reg() local 204 for (vq = 0; vq < cpu->sve_max_vq; vq = vq + 4) { in aarch64_gdb_set_sve_reg() [all …]
|
H A D | cpu64.c | 59 uint32_t tmp, vq, max_vq = 0; in arm_cpu_sve_finalize() local 127 vq = ctz32(tmp) + 1; in arm_cpu_sve_finalize() 129 max_vq = vq <= ARM_MAX_VQ ? vq - 1 : ARM_MAX_VQ; in arm_cpu_sve_finalize() 180 vq = 32 - clz32(tmp); in arm_cpu_sve_finalize() 278 vq_map->init |= 1 << (vq - 1); in cpu_arm_set_vq() 307 uint32_t vq; in arm_cpu_sme_finalize() local 328 vq = 32 - clz32(vq_map); in arm_cpu_sme_finalize() 434 uint32_t vq; in aarch64_add_sve_properties() local 438 for (vq = 1; vq <= ARM_MAX_VQ; ++vq) { in aarch64_add_sve_properties() 457 uint32_t vq; in aarch64_add_sme_properties() local [all …]
|
H A D | arch_dump.c | 146 static off_t sve_zreg_offset(uint32_t vq, int n) in sve_zreg_offset() argument 149 return ROUND_UP(off, 16) + vq * 16 * n; in sve_zreg_offset() 154 return sve_zreg_offset(vq, 32) + vq * 16 / 8 * n; in sve_preg_offset() 157 static off_t sve_fpsr_offset(uint32_t vq) in sve_fpsr_offset() argument 159 off_t off = sve_preg_offset(vq, 17); in sve_fpsr_offset() 163 static off_t sve_fpcr_offset(uint32_t vq) in sve_fpcr_offset() argument 173 static size_t sve_size_vq(uint32_t vq) in sve_size_vq() argument 190 uint32_t vq = sve_current_vq(env); in aarch64_write_elf64_sve() local 203 note->sve.vl = cpu_to_dump16(s, vq * 16); in aarch64_write_elf64_sve() 209 memcpy(&buf[sve_zreg_offset(vq, i)], r, vq * 16); in aarch64_write_elf64_sve() [all …]
|
/qemu/linux-user/aarch64/ |
H A D | target_prctl.h | 31 uint32_t vq, old_vq; in do_prctl_sve_set_vl() local 41 vq = MAX(arg2 / 16, 1); in do_prctl_sve_set_vl() 42 vq = MIN(vq, ARM_MAX_VQ); in do_prctl_sve_set_vl() 46 vq = sve_vq(env); in do_prctl_sve_set_vl() 47 if (vq < old_vq) { in do_prctl_sve_set_vl() 50 return vq * 16; in do_prctl_sve_set_vl() 75 int vq, old_vq; in do_prctl_sme_set_vl() local 85 vq = MAX(arg2 / 16, 1); in do_prctl_sme_set_vl() 86 vq = MIN(vq, 16); in do_prctl_sme_set_vl() 93 if (vq != old_vq) { in do_prctl_sme_set_vl() [all …]
|
H A D | signal.c | 198 int i, j, vq = sve_vq(env); in target_setup_sve_record() local 214 for (j = 0; j < vq * 2; ++j) { in target_setup_sve_record() 220 for (j = 0; j < vq; ++j) { in target_setup_sve_record() 230 int vq = sme_vq(env); in target_setup_za_record() local 231 int vl = vq * TARGET_SVE_VQ_BYTES; in target_setup_za_record() 250 for (j = 0; j < vq * 2; ++j) { in target_setup_za_record() 303 int i, j, vl, vq, flags; in target_restore_sve_record() local 348 for (j = 0; j < vq * 2; ++j) { in target_restore_sve_record() 354 for (j = 0; j < vq; ++j) { in target_restore_sve_record() 371 int i, j, vl, vq; in target_restore_za_record() local [all …]
|
/qemu/block/export/ |
H A D | vduse-blk.c | 40 VduseVirtq *vq; member 65 vduse_queue_notify(req->vq); in vduse_blk_req_complete() 73 VduseVirtq *vq = req->vq; in vduse_blk_virtio_process_req() local 74 VduseDev *dev = vduse_queue_get_dev(vq); in vduse_blk_virtio_process_req() 106 req->vq = vq; in vduse_blk_vq_handler() 118 VduseVirtq *vq = opaque; in on_vduse_vq_kick() local 119 VduseDev *dev = vduse_queue_get_dev(vq); in on_vduse_vq_kick() 120 int fd = vduse_queue_get_fd(vq); in on_vduse_vq_kick() 128 vduse_blk_vq_handler(dev, vq); in on_vduse_vq_kick() 142 eventfd_write(vduse_queue_get_fd(vq), 1); in vduse_blk_enable_queue() [all …]
|
/qemu/include/hw/virtio/ |
H A D | virtio.h | 131 VirtQueue *vq; member 253 void virtio_delete_queue(VirtQueue *vq); 262 bool virtqueue_rewind(VirtQueue *vq, unsigned int num); 267 void *virtqueue_pop(VirtQueue *vq, size_t sz); 268 unsigned int virtqueue_drop_all(VirtQueue *vq); 279 void virtio_notify(VirtIODevice *vdev, VirtQueue *vq); 303 bool virtio_queue_get_notification(VirtQueue *vq); 306 int virtio_queue_ready(VirtQueue *vq); 308 int virtio_queue_empty(VirtQueue *vq); 389 uint16_t virtio_get_queue_index(VirtQueue *vq); [all …]
|
/qemu/hw/char/ |
H A D | virtio-serial-bus.c | 59 if (port->ivq == vq || port->ovq == vq) in find_port_by_vq() 104 VirtQueue *vq; in write_to_port() local 107 vq = port->ivq; in write_to_port() 108 if (!virtio_queue_ready(vq)) { in write_to_port() 137 if (!virtio_queue_ready(vq)) { in discard_vq_data() 148 virtio_notify(vdev, vq); in discard_vq_data() 211 virtio_notify(vdev, vq); in do_flush_queued_data() 227 VirtQueue *vq; in send_control_msg() local 229 vq = vser->c_ivq; in send_control_msg() 310 VirtQueue *vq = port->ivq; in virtio_serial_guest_ready() local [all …]
|