| /Linux-v5.10/drivers/virtio/ |
| D | virtio_ring.c | 20 dev_err(&(_vq)->vq.vdev->dev, \ 21 "%s:"fmt, (_vq)->vq.name, ##args); \ 29 (_vq)->vq.name, (_vq)->in_use); \ 57 dev_err(&_vq->vq.vdev->dev, \ 58 "%s:"fmt, (_vq)->vq.name, ##args); \ 61 #define START_USE(vq) argument 62 #define END_USE(vq) argument 63 #define LAST_ADD_TIME_UPDATE(vq) argument 64 #define LAST_ADD_TIME_CHECK(vq) argument 65 #define LAST_ADD_TIME_INVALID(vq) argument [all …]
|
| D | virtio_vdpa.c | 39 struct virtqueue *vq; member 107 static bool virtio_vdpa_notify(struct virtqueue *vq) in virtio_vdpa_notify() argument 109 struct vdpa_device *vdpa = vd_get_vdpa(vq->vdev); in virtio_vdpa_notify() 112 ops->kick_vq(vdpa, vq->index); in virtio_vdpa_notify() 130 return vring_interrupt(0, info->vq); in virtio_vdpa_virtqueue_cb() 135 void (*callback)(struct virtqueue *vq), in virtio_vdpa_setup_vq() argument 143 struct virtqueue *vq; in virtio_vdpa_setup_vq() local 169 vq = vring_create_virtqueue(index, num, align, vdev, in virtio_vdpa_setup_vq() 172 if (!vq) { in virtio_vdpa_setup_vq() 181 ops->set_vq_num(vdpa, index, virtqueue_get_vring_size(vq)); in virtio_vdpa_setup_vq() [all …]
|
| D | virtio_pci_legacy.c | 116 void (*callback)(struct virtqueue *vq), in setup_vq() argument 121 struct virtqueue *vq; in setup_vq() local 137 vq = vring_create_virtqueue(index, num, in setup_vq() 141 if (!vq) in setup_vq() 144 q_pfn = virtqueue_get_desc_addr(vq) >> VIRTIO_PCI_QUEUE_ADDR_SHIFT; in setup_vq() 156 vq->priv = (void __force *)vp_dev->ioaddr + VIRTIO_PCI_QUEUE_NOTIFY; in setup_vq() 167 return vq; in setup_vq() 172 vring_del_virtqueue(vq); in setup_vq() 178 struct virtqueue *vq = info->vq; in del_vq() local 179 struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev); in del_vq() [all …]
|
| D | virtio_pci_common.c | 41 bool vp_notify(struct virtqueue *vq) in vp_notify() argument 45 iowrite16(vq->index, (void __iomem *)vq->priv); in vp_notify() 68 if (vring_interrupt(irq, info->vq) == IRQ_HANDLED) in vp_vring_interrupt() 175 void (*callback)(struct virtqueue *vq), in vp_setup_vq() argument 182 struct virtqueue *vq; in vp_setup_vq() local 189 vq = vp_dev->setup_vq(vp_dev, info, index, callback, name, ctx, in vp_setup_vq() 191 if (IS_ERR(vq)) in vp_setup_vq() 194 info->vq = vq; in vp_setup_vq() 204 return vq; in vp_setup_vq() 208 return vq; in vp_setup_vq() [all …]
|
| /Linux-v5.10/drivers/vhost/ |
| D | vhost.c | 49 #define vhost_used_event(vq) ((__virtio16 __user *)&vq->avail->ring[vq->num]) argument 50 #define vhost_avail_event(vq) ((__virtio16 __user *)&vq->used->ring[vq->num]) argument 53 static void vhost_disable_cross_endian(struct vhost_virtqueue *vq) in vhost_disable_cross_endian() argument 55 vq->user_be = !virtio_legacy_is_little_endian(); in vhost_disable_cross_endian() 58 static void vhost_enable_cross_endian_big(struct vhost_virtqueue *vq) in vhost_enable_cross_endian_big() argument 60 vq->user_be = true; in vhost_enable_cross_endian_big() 63 static void vhost_enable_cross_endian_little(struct vhost_virtqueue *vq) in vhost_enable_cross_endian_little() argument 65 vq->user_be = false; in vhost_enable_cross_endian_little() 68 static long vhost_set_vring_endian(struct vhost_virtqueue *vq, int __user *argp) in vhost_set_vring_endian() argument 72 if (vq->private_data) in vhost_set_vring_endian() [all …]
|
| D | net.c | 97 struct vhost_virtqueue *vq; member 108 struct vhost_virtqueue vq; member 228 static void vhost_net_enable_zcopy(int vq) in vhost_net_enable_zcopy() argument 230 vhost_net_zcopy_mask |= 0x1 << vq; in vhost_net_enable_zcopy() 234 vhost_net_ubuf_alloc(struct vhost_virtqueue *vq, bool zcopy) in vhost_net_ubuf_alloc() argument 245 ubufs->vq = vq; in vhost_net_ubuf_alloc() 359 struct vhost_virtqueue *vq) in vhost_zerocopy_signal_used() argument 362 container_of(vq, struct vhost_net_virtqueue, vq); in vhost_zerocopy_signal_used() 367 if (vq->heads[i].len == VHOST_DMA_FAILED_LEN) in vhost_zerocopy_signal_used() 369 if (VHOST_DMA_IS_DONE(vq->heads[i].len)) { in vhost_zerocopy_signal_used() [all …]
|
| D | test.c | 45 struct vhost_virtqueue *vq = &n->vqs[VHOST_TEST_VQ]; in handle_vq() local 51 mutex_lock(&vq->mutex); in handle_vq() 52 private = vhost_vq_get_backend(vq); in handle_vq() 54 mutex_unlock(&vq->mutex); in handle_vq() 58 vhost_disable_notify(&n->dev, vq); in handle_vq() 61 head = vhost_get_vq_desc(vq, vq->iov, in handle_vq() 62 ARRAY_SIZE(vq->iov), in handle_vq() 69 if (head == vq->num) { in handle_vq() 70 if (unlikely(vhost_enable_notify(&n->dev, vq))) { in handle_vq() 71 vhost_disable_notify(&n->dev, vq); in handle_vq() [all …]
|
| D | vhost.h | 142 struct vhost_virtqueue *vq; member 169 bool vhost_exceeds_weight(struct vhost_virtqueue *vq, int pkts, int total_len); 184 bool vhost_vq_access_ok(struct vhost_virtqueue *vq); 193 bool vhost_vq_is_setup(struct vhost_virtqueue *vq); 207 int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, 210 int vq_meta_prefetch(struct vhost_virtqueue *vq); 212 struct vhost_msg_node *vhost_new_msg(struct vhost_virtqueue *vq, int type); 231 #define vq_err(vq, fmt, ...) do { \ argument 233 if ((vq)->error_ctx) \ 234 eventfd_signal((vq)->error_ctx, 1);\ [all …]
|
| D | vsock.c | 85 struct vhost_virtqueue *vq) in vhost_transport_do_send_pkt() argument 92 mutex_lock(&vq->mutex); in vhost_transport_do_send_pkt() 94 if (!vhost_vq_get_backend(vq)) in vhost_transport_do_send_pkt() 98 vhost_disable_notify(&vsock->dev, vq); in vhost_transport_do_send_pkt() 111 vhost_enable_notify(&vsock->dev, vq); in vhost_transport_do_send_pkt() 120 head = vhost_get_vq_desc(vq, vq->iov, ARRAY_SIZE(vq->iov), in vhost_transport_do_send_pkt() 129 if (head == vq->num) { in vhost_transport_do_send_pkt() 137 if (unlikely(vhost_enable_notify(&vsock->dev, vq))) { in vhost_transport_do_send_pkt() 138 vhost_disable_notify(&vsock->dev, vq); in vhost_transport_do_send_pkt() 146 vq_err(vq, "Expected 0 output buffers, got %u\n", out); in vhost_transport_do_send_pkt() [all …]
|
| D | scsi.c | 180 struct vhost_virtqueue vq; member 261 struct vhost_virtqueue *vq; in vhost_scsi_init_inflight() local 265 vq = &vs->vqs[i].vq; in vhost_scsi_init_inflight() 267 mutex_lock(&vq->mutex); in vhost_scsi_init_inflight() 280 mutex_unlock(&vq->mutex); in vhost_scsi_init_inflight() 285 vhost_scsi_get_inflight(struct vhost_virtqueue *vq) in vhost_scsi_get_inflight() argument 290 svq = container_of(vq, struct vhost_scsi_virtqueue, vq); in vhost_scsi_get_inflight() 346 struct vhost_scsi_virtqueue, vq); in vhost_scsi_release_cmd_res() 449 struct vhost_virtqueue *vq = &vs->vqs[VHOST_SCSI_VQ_EVT].vq; in vhost_scsi_allocate_evt() local 459 vq_err(vq, "Failed to allocate vhost_scsi_evt\n"); in vhost_scsi_allocate_evt() [all …]
|
| /Linux-v5.10/arch/arm64/include/uapi/asm/ |
| D | sve_context.h | 31 #define __sve_vl_from_vq(vq) ((vq) * __SVE_VQ_BYTES) argument 33 #define __SVE_ZREG_SIZE(vq) ((__u32)(vq) * __SVE_VQ_BYTES) argument 34 #define __SVE_PREG_SIZE(vq) ((__u32)(vq) * (__SVE_VQ_BYTES / 8)) argument 35 #define __SVE_FFR_SIZE(vq) __SVE_PREG_SIZE(vq) argument 38 #define __SVE_ZREG_OFFSET(vq, n) \ argument 39 (__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n)) 40 #define __SVE_ZREGS_SIZE(vq) \ argument 41 (__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET) 43 #define __SVE_PREGS_OFFSET(vq) \ argument 44 (__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq)) [all …]
|
| D | sigcontext.h | 165 #define sve_vl_from_vq(vq) __sve_vl_from_vq(vq) argument 223 #define SVE_SIG_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq) argument 224 #define SVE_SIG_PREG_SIZE(vq) __SVE_PREG_SIZE(vq) argument 225 #define SVE_SIG_FFR_SIZE(vq) __SVE_FFR_SIZE(vq) argument 233 #define SVE_SIG_ZREG_OFFSET(vq, n) \ argument 234 (SVE_SIG_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n)) 235 #define SVE_SIG_ZREGS_SIZE(vq) __SVE_ZREGS_SIZE(vq) argument 237 #define SVE_SIG_PREGS_OFFSET(vq) \ argument 238 (SVE_SIG_REGS_OFFSET + __SVE_PREGS_OFFSET(vq)) 239 #define SVE_SIG_PREG_OFFSET(vq, n) \ argument [all …]
|
| D | ptrace.h | 169 #define SVE_PT_FPSIMD_SIZE(vq, flags) (sizeof(struct user_fpsimd_state)) argument 200 #define SVE_PT_SVE_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq) argument 201 #define SVE_PT_SVE_PREG_SIZE(vq) __SVE_PREG_SIZE(vq) argument 202 #define SVE_PT_SVE_FFR_SIZE(vq) __SVE_FFR_SIZE(vq) argument 210 #define SVE_PT_SVE_ZREG_OFFSET(vq, n) \ argument 211 (SVE_PT_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n)) 212 #define SVE_PT_SVE_ZREGS_SIZE(vq) \ argument 213 (SVE_PT_SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET) 215 #define SVE_PT_SVE_PREGS_OFFSET(vq) \ argument 216 (SVE_PT_REGS_OFFSET + __SVE_PREGS_OFFSET(vq)) [all …]
|
| /Linux-v5.10/include/linux/ |
| D | virtio.h | 29 void (*callback)(struct virtqueue *vq); 37 int virtqueue_add_outbuf(struct virtqueue *vq, 42 int virtqueue_add_inbuf(struct virtqueue *vq, 47 int virtqueue_add_inbuf_ctx(struct virtqueue *vq, 53 int virtqueue_add_sgs(struct virtqueue *vq, 60 bool virtqueue_kick(struct virtqueue *vq); 62 bool virtqueue_kick_prepare(struct virtqueue *vq); 64 bool virtqueue_notify(struct virtqueue *vq); 66 void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len); 68 void *virtqueue_get_buf_ctx(struct virtqueue *vq, unsigned int *len, [all …]
|
| /Linux-v5.10/tools/virtio/linux/ |
| D | virtio.h | 19 void (*callback)(struct virtqueue *vq); 28 int virtqueue_add_sgs(struct virtqueue *vq, 35 int virtqueue_add_outbuf(struct virtqueue *vq, 40 int virtqueue_add_inbuf(struct virtqueue *vq, 45 bool virtqueue_kick(struct virtqueue *vq); 47 void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len); 49 void virtqueue_disable_cb(struct virtqueue *vq); 51 bool virtqueue_enable_cb(struct virtqueue *vq); 52 bool virtqueue_enable_cb_delayed(struct virtqueue *vq); 54 void *virtqueue_detach_unused_buf(struct virtqueue *vq); [all …]
|
| /Linux-v5.10/drivers/gpu/drm/virtio/ |
| D | virtgpu_trace.h | 12 TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr), 13 TP_ARGS(vq, hdr), 16 __field(unsigned int, vq) 24 __entry->dev = vq->vdev->index; 25 __entry->vq = vq->index; 26 __entry->name = vq->name; 33 __entry->dev, __entry->vq, __entry->name, 39 TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr), 40 TP_ARGS(vq, hdr) 44 TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr), [all …]
|
| /Linux-v5.10/tools/virtio/ |
| D | virtio_test.c | 35 struct virtqueue *vq; member 53 bool vq_notify(struct virtqueue *vq) in vq_notify() argument 55 struct vq_info *info = vq->priv; in vq_notify() 63 void vq_callback(struct virtqueue *vq) in vq_callback() argument 100 if (info->vq) in vq_reset() 101 vring_del_virtqueue(info->vq); in vq_reset() 105 info->vq = __vring_new_virtqueue(info->idx, info->vring, vdev, true, in vq_reset() 107 assert(info->vq); in vq_reset() 108 info->vq->priv = info; in vq_reset() 168 static void run_test(struct vdev_info *dev, struct vq_info *vq, in run_test() argument [all …]
|
| /Linux-v5.10/net/vmw_vsock/ |
| D | virtio_transport.c | 90 struct virtqueue *vq; in virtio_transport_send_pkt_work() local 99 vq = vsock->vqs[VSOCK_VQ_TX]; in virtio_transport_send_pkt_work() 129 ret = virtqueue_add_sgs(vq, sgs, out_sg, in_sg, pkt, GFP_KERNEL); in virtio_transport_send_pkt_work() 155 virtqueue_kick(vq); in virtio_transport_send_pkt_work() 250 struct virtqueue *vq; in virtio_vsock_rx_fill() local 253 vq = vsock->vqs[VSOCK_VQ_RX]; in virtio_vsock_rx_fill() 274 ret = virtqueue_add_sgs(vq, sgs, 0, 2, pkt, GFP_KERNEL); in virtio_vsock_rx_fill() 280 } while (vq->num_free); in virtio_vsock_rx_fill() 283 virtqueue_kick(vq); in virtio_vsock_rx_fill() 290 struct virtqueue *vq; in virtio_transport_tx_work() local [all …]
|
| /Linux-v5.10/tools/testing/selftests/arm64/fp/ |
| D | sve-probe-vls.c | 19 unsigned int vq; in main() local 33 for (vq = SVE_VQ_MAX; vq > 0; --vq) { in main() 34 vl = prctl(PR_SVE_SET_VL, vq * 16); in main() 43 vq = sve_vq_from_vl(vl); in main() 48 vqs[nvqs++] = vq; in main()
|
| /Linux-v5.10/drivers/staging/media/sunxi/cedrus/ |
| D | cedrus_video.c | 280 struct vb2_queue *vq; in cedrus_s_fmt_vid_cap() local 283 vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); in cedrus_s_fmt_vid_cap() 284 if (vb2_is_busy(vq)) in cedrus_s_fmt_vid_cap() 300 struct vb2_queue *vq; in cedrus_s_fmt_vid_out() local 308 vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); in cedrus_s_fmt_vid_out() 314 if (vb2_is_streaming(vq) || (vb2_is_busy(vq) && in cedrus_s_fmt_vid_out() 335 vq->subsystem_flags |= in cedrus_s_fmt_vid_out() 339 vq->subsystem_flags &= in cedrus_s_fmt_vid_out() 387 static int cedrus_queue_setup(struct vb2_queue *vq, unsigned int *nbufs, in cedrus_queue_setup() argument 391 struct cedrus_ctx *ctx = vb2_get_drv_priv(vq); in cedrus_queue_setup() [all …]
|
| /Linux-v5.10/drivers/vdpa/vdpa_sim/ |
| D | vdpa_sim.c | 120 struct vdpasim_virtqueue *vq = &vdpasim->vqs[idx]; in vdpasim_queue_ready() local 122 vringh_init_iotlb(&vq->vring, vdpasim_features, in vdpasim_queue_ready() 124 (struct vring_desc *)(uintptr_t)vq->desc_addr, in vdpasim_queue_ready() 126 (uintptr_t)vq->driver_addr, in vdpasim_queue_ready() 128 (uintptr_t)vq->device_addr); in vdpasim_queue_ready() 131 static void vdpasim_vq_reset(struct vdpasim_virtqueue *vq) in vdpasim_vq_reset() argument 133 vq->ready = false; in vdpasim_vq_reset() 134 vq->desc_addr = 0; in vdpasim_vq_reset() 135 vq->driver_addr = 0; in vdpasim_vq_reset() 136 vq->device_addr = 0; in vdpasim_vq_reset() [all …]
|
| /Linux-v5.10/arch/um/drivers/ |
| D | virtio_uml.c | 69 struct virtqueue *vq; member 358 struct virtqueue *vq; in vu_req_interrupt() local 379 virtio_device_for_each_vq((&vu_dev->vdev), vq) { in vu_req_interrupt() 380 if (vq->index == msg.msg.payload.vring_state.index) { in vu_req_interrupt() 382 vring_interrupt(0 /* ignored */, vq); in vu_req_interrupt() 722 static bool vu_notify(struct virtqueue *vq) in vu_notify() argument 724 struct virtio_uml_vq_info *info = vq->priv; in vu_notify() 733 vu_dev = to_virtio_uml_device(vq->vdev); in vu_notify() 736 vq->index, 0) == 0; in vu_notify() 747 struct virtqueue *vq = opaque; in vu_interrupt() local [all …]
|
| /Linux-v5.10/arch/arm64/kvm/ |
| D | guest.c | 264 #define vq_word(vq) (((vq) - SVE_VQ_MIN) / 64) argument 265 #define vq_mask(vq) ((u64)1 << ((vq) - SVE_VQ_MIN) % 64) argument 266 #define vq_present(vqs, vq) (!!((vqs)[vq_word(vq)] & vq_mask(vq))) argument 270 unsigned int max_vq, vq; in get_sve_vls() local 282 for (vq = SVE_VQ_MIN; vq <= max_vq; ++vq) in get_sve_vls() 283 if (sve_vq_available(vq)) in get_sve_vls() 284 vqs[vq_word(vq)] |= vq_mask(vq); in get_sve_vls() 294 unsigned int max_vq, vq; in set_sve_vls() local 310 for (vq = SVE_VQ_MIN; vq <= SVE_VQ_MAX; ++vq) in set_sve_vls() 311 if (vq_present(vqs, vq)) in set_sve_vls() [all …]
|
| /Linux-v5.10/drivers/remoteproc/ |
| D | remoteproc_virtio.c | 27 static bool rproc_virtio_notify(struct virtqueue *vq) in rproc_virtio_notify() argument 29 struct rproc_vring *rvring = vq->priv; in rproc_virtio_notify() 58 if (!rvring || !rvring->vq) in rproc_vq_interrupt() 61 return vring_interrupt(0, rvring->vq); in rproc_vq_interrupt() 67 void (*callback)(struct virtqueue *vq), in rp_find_vq() argument 76 struct virtqueue *vq; in rp_find_vq() local 108 vq = vring_new_virtqueue(id, len, rvring->align, vdev, false, ctx, in rp_find_vq() 110 if (!vq) { in rp_find_vq() 116 rvring->vq = vq; in rp_find_vq() 117 vq->priv = rvring; in rp_find_vq() [all …]
|
| /Linux-v5.10/drivers/scsi/ |
| D | virtio_scsi.c | 67 struct virtqueue *vq; member 178 struct virtqueue *vq = virtscsi_vq->vq; in virtscsi_vq_done() local 182 virtqueue_disable_cb(vq); in virtscsi_vq_done() 183 while ((buf = virtqueue_get_buf(vq, &len)) != NULL) in virtscsi_vq_done() 186 if (unlikely(virtqueue_is_broken(vq))) in virtscsi_vq_done() 188 } while (!virtqueue_enable_cb(vq)); in virtscsi_vq_done() 192 static void virtscsi_req_done(struct virtqueue *vq) in virtscsi_req_done() argument 194 struct Scsi_Host *sh = virtio_scsi_host(vq->vdev); in virtscsi_req_done() 196 int index = vq->index - VIRTIO_SCSI_VQ_BASE; in virtscsi_req_done() 220 static void virtscsi_ctrl_done(struct virtqueue *vq) in virtscsi_ctrl_done() argument [all …]
|