/Linux-v4.19/drivers/virtio/ |
D | virtio_ring.c | 33 dev_err(&(_vq)->vq.vdev->dev, \ 34 "%s:"fmt, (_vq)->vq.name, ##args); \ 42 (_vq)->vq.name, (_vq)->in_use); \ 50 dev_err(&_vq->vq.vdev->dev, \ 51 "%s:"fmt, (_vq)->vq.name, ##args); \ 54 #define START_USE(vq) argument 55 #define END_USE(vq) argument 64 struct virtqueue vq; member 96 bool (*notify)(struct virtqueue *vq); 116 #define to_vvq(_vq) container_of(_vq, struct vring_virtqueue, vq) [all …]
|
D | virtio_mmio.c | 101 struct virtqueue *vq; member 276 static bool vm_notify(struct virtqueue *vq) in vm_notify() argument 278 struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vq->vdev); in vm_notify() 282 writel(vq->index, vm_dev->base + VIRTIO_MMIO_QUEUE_NOTIFY); in vm_notify() 307 ret |= vring_interrupt(irq, info->vq); in vm_interrupt() 316 static void vm_del_vq(struct virtqueue *vq) in vm_del_vq() argument 318 struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vq->vdev); in vm_del_vq() 319 struct virtio_mmio_vq_info *info = vq->priv; in vm_del_vq() 321 unsigned int index = vq->index; in vm_del_vq() 336 vring_del_virtqueue(vq); in vm_del_vq() [all …]
|
D | virtio_pci_legacy.c | 117 void (*callback)(struct virtqueue *vq), in setup_vq() argument 122 struct virtqueue *vq; in setup_vq() local 138 vq = vring_create_virtqueue(index, num, in setup_vq() 142 if (!vq) in setup_vq() 145 q_pfn = virtqueue_get_desc_addr(vq) >> VIRTIO_PCI_QUEUE_ADDR_SHIFT; in setup_vq() 157 vq->priv = (void __force *)vp_dev->ioaddr + VIRTIO_PCI_QUEUE_NOTIFY; in setup_vq() 168 return vq; in setup_vq() 173 vring_del_virtqueue(vq); in setup_vq() 179 struct virtqueue *vq = info->vq; in del_vq() local 180 struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev); in del_vq() [all …]
|
D | virtio_pci_common.c | 44 bool vp_notify(struct virtqueue *vq) in vp_notify() argument 48 iowrite16(vq->index, (void __iomem *)vq->priv); in vp_notify() 71 if (vring_interrupt(irq, info->vq) == IRQ_HANDLED) in vp_vring_interrupt() 178 void (*callback)(struct virtqueue *vq), in vp_setup_vq() argument 185 struct virtqueue *vq; in vp_setup_vq() local 192 vq = vp_dev->setup_vq(vp_dev, info, index, callback, name, ctx, in vp_setup_vq() 194 if (IS_ERR(vq)) in vp_setup_vq() 197 info->vq = vq; in vp_setup_vq() 207 return vq; in vp_setup_vq() 211 return vq; in vp_setup_vq() [all …]
|
D | virtio_pci_modern.c | 312 void (*callback)(struct virtqueue *vq), in setup_vq() argument 318 struct virtqueue *vq; in setup_vq() local 344 vq = vring_create_virtqueue(index, num, in setup_vq() 348 if (!vq) in setup_vq() 352 vp_iowrite16(virtqueue_get_vring_size(vq), &cfg->queue_size); in setup_vq() 353 vp_iowrite64_twopart(virtqueue_get_desc_addr(vq), in setup_vq() 355 vp_iowrite64_twopart(virtqueue_get_avail_addr(vq), in setup_vq() 357 vp_iowrite64_twopart(virtqueue_get_used_addr(vq), in setup_vq() 372 vq->priv = (void __force *)vp_dev->notify_base + in setup_vq() 375 vq->priv = (void __force *)map_capability(vp_dev->pci_dev, in setup_vq() [all …]
|
/Linux-v4.19/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 57 static void vhost_disable_cross_endian(struct vhost_virtqueue *vq) in vhost_disable_cross_endian() argument 59 vq->user_be = !virtio_legacy_is_little_endian(); in vhost_disable_cross_endian() 62 static void vhost_enable_cross_endian_big(struct vhost_virtqueue *vq) in vhost_enable_cross_endian_big() argument 64 vq->user_be = true; in vhost_enable_cross_endian_big() 67 static void vhost_enable_cross_endian_little(struct vhost_virtqueue *vq) in vhost_enable_cross_endian_little() argument 69 vq->user_be = false; in vhost_enable_cross_endian_little() 72 static long vhost_set_vring_endian(struct vhost_virtqueue *vq, int __user *argp) in vhost_set_vring_endian() argument 76 if (vq->private_data) in vhost_set_vring_endian() [all …]
|
D | net.c | 98 struct vhost_virtqueue *vq; member 109 struct vhost_virtqueue vq; member 221 static void vhost_net_enable_zcopy(int vq) in vhost_net_enable_zcopy() argument 223 vhost_net_zcopy_mask |= 0x1 << vq; in vhost_net_enable_zcopy() 227 vhost_net_ubuf_alloc(struct vhost_virtqueue *vq, bool zcopy) in vhost_net_ubuf_alloc() argument 238 ubufs->vq = vq; in vhost_net_ubuf_alloc() 347 struct vhost_virtqueue *vq) in vhost_zerocopy_signal_used() argument 350 container_of(vq, struct vhost_net_virtqueue, vq); in vhost_zerocopy_signal_used() 355 if (vq->heads[i].len == VHOST_DMA_FAILED_LEN) in vhost_zerocopy_signal_used() 357 if (VHOST_DMA_IS_DONE(vq->heads[i].len)) { in vhost_zerocopy_signal_used() [all …]
|
D | vsock.c | 85 struct vhost_virtqueue *vq) in vhost_transport_do_send_pkt() argument 91 mutex_lock(&vq->mutex); in vhost_transport_do_send_pkt() 93 if (!vq->private_data) in vhost_transport_do_send_pkt() 97 vhost_disable_notify(&vsock->dev, vq); in vhost_transport_do_send_pkt() 110 vhost_enable_notify(&vsock->dev, vq); in vhost_transport_do_send_pkt() 119 head = vhost_get_vq_desc(vq, vq->iov, ARRAY_SIZE(vq->iov), in vhost_transport_do_send_pkt() 128 if (head == vq->num) { in vhost_transport_do_send_pkt() 136 if (unlikely(vhost_enable_notify(&vsock->dev, vq))) { in vhost_transport_do_send_pkt() 137 vhost_disable_notify(&vsock->dev, vq); in vhost_transport_do_send_pkt() 145 vq_err(vq, "Expected 0 output buffers, got %u\n", out); in vhost_transport_do_send_pkt() [all …]
|
D | test.c | 40 struct vhost_virtqueue *vq = &n->vqs[VHOST_TEST_VQ]; in handle_vq() local 46 mutex_lock(&vq->mutex); in handle_vq() 47 private = vq->private_data; in handle_vq() 49 mutex_unlock(&vq->mutex); in handle_vq() 53 vhost_disable_notify(&n->dev, vq); in handle_vq() 56 head = vhost_get_vq_desc(vq, vq->iov, in handle_vq() 57 ARRAY_SIZE(vq->iov), in handle_vq() 64 if (head == vq->num) { in handle_vq() 65 if (unlikely(vhost_enable_notify(&n->dev, vq))) { in handle_vq() 66 vhost_disable_notify(&n->dev, vq); in handle_vq() [all …]
|
D | vhost.h | 155 struct vhost_virtqueue *vq; member 185 bool vhost_vq_access_ok(struct vhost_virtqueue *vq); 207 int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, 209 int vq_iotlb_prefetch(struct vhost_virtqueue *vq); 211 struct vhost_msg_node *vhost_new_msg(struct vhost_virtqueue *vq, int type); 225 #define vq_err(vq, fmt, ...) do { \ argument 227 if ((vq)->error_ctx) \ 228 eventfd_signal((vq)->error_ctx, 1);\ 240 static inline bool vhost_has_feature(struct vhost_virtqueue *vq, int bit) in vhost_has_feature() argument 242 return vq->acked_features & (1ULL << bit); in vhost_has_feature() [all …]
|
D | scsi.c | 174 struct vhost_virtqueue vq; member 224 struct vhost_virtqueue *vq; in vhost_scsi_init_inflight() local 228 vq = &vs->vqs[i].vq; in vhost_scsi_init_inflight() 230 mutex_lock(&vq->mutex); in vhost_scsi_init_inflight() 243 mutex_unlock(&vq->mutex); in vhost_scsi_init_inflight() 248 vhost_scsi_get_inflight(struct vhost_virtqueue *vq) in vhost_scsi_get_inflight() argument 253 svq = container_of(vq, struct vhost_scsi_virtqueue, vq); in vhost_scsi_get_inflight() 401 struct vhost_virtqueue *vq = &vs->vqs[VHOST_SCSI_VQ_EVT].vq; in vhost_scsi_allocate_evt() local 411 vq_err(vq, "Failed to allocate vhost_scsi_evt\n"); in vhost_scsi_allocate_evt() 416 evt->event.event = cpu_to_vhost32(vq, event); in vhost_scsi_allocate_evt() [all …]
|
/Linux-v4.19/arch/arm64/include/uapi/asm/ |
D | sigcontext.h | 155 #define sve_vl_from_vq(vq) ((vq) * SVE_VQ_BYTES) argument 208 #define SVE_SIG_ZREG_SIZE(vq) ((__u32)(vq) * SVE_VQ_BYTES) argument 209 #define SVE_SIG_PREG_SIZE(vq) ((__u32)(vq) * (SVE_VQ_BYTES / 8)) argument 210 #define SVE_SIG_FFR_SIZE(vq) SVE_SIG_PREG_SIZE(vq) argument 217 #define SVE_SIG_ZREG_OFFSET(vq, n) \ argument 218 (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n)) 219 #define SVE_SIG_ZREGS_SIZE(vq) \ argument 220 (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET) 222 #define SVE_SIG_PREGS_OFFSET(vq) \ argument 223 (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq)) [all …]
|
D | ptrace.h | 153 #define SVE_PT_FPSIMD_SIZE(vq, flags) (sizeof(struct user_fpsimd_state)) argument 180 #define SVE_PT_SVE_ZREG_SIZE(vq) SVE_SIG_ZREG_SIZE(vq) argument 181 #define SVE_PT_SVE_PREG_SIZE(vq) SVE_SIG_PREG_SIZE(vq) argument 182 #define SVE_PT_SVE_FFR_SIZE(vq) SVE_SIG_FFR_SIZE(vq) argument 193 #define SVE_PT_SVE_ZREG_OFFSET(vq, n) \ argument 194 __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n)) 195 #define SVE_PT_SVE_ZREGS_SIZE(vq) \ argument 196 (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET) 198 #define SVE_PT_SVE_PREGS_OFFSET(vq) \ argument 199 __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq)) [all …]
|
/Linux-v4.19/include/linux/ |
D | virtio.h | 30 void (*callback)(struct virtqueue *vq); 38 int virtqueue_add_outbuf(struct virtqueue *vq, 43 int virtqueue_add_inbuf(struct virtqueue *vq, 48 int virtqueue_add_inbuf_ctx(struct virtqueue *vq, 54 int virtqueue_add_sgs(struct virtqueue *vq, 61 bool virtqueue_kick(struct virtqueue *vq); 63 bool virtqueue_kick_prepare(struct virtqueue *vq); 65 bool virtqueue_notify(struct virtqueue *vq); 67 void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len); 69 void *virtqueue_get_buf_ctx(struct virtqueue *vq, unsigned int *len, [all …]
|
D | virtio_ring.h | 76 bool (*notify)(struct virtqueue *vq), 77 void (*callback)(struct virtqueue *vq), 101 bool (*notify)(struct virtqueue *vq), 102 void (*callback)(struct virtqueue *vq), 109 void vring_del_virtqueue(struct virtqueue *vq);
|
/Linux-v4.19/tools/virtio/linux/ |
D | virtio.h | 20 void (*callback)(struct virtqueue *vq); 29 int virtqueue_add_sgs(struct virtqueue *vq, 36 int virtqueue_add_outbuf(struct virtqueue *vq, 41 int virtqueue_add_inbuf(struct virtqueue *vq, 46 bool virtqueue_kick(struct virtqueue *vq); 48 void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len); 50 void virtqueue_disable_cb(struct virtqueue *vq); 52 bool virtqueue_enable_cb(struct virtqueue *vq); 53 bool virtqueue_enable_cb_delayed(struct virtqueue *vq); 55 void *virtqueue_detach_unused_buf(struct virtqueue *vq); [all …]
|
/Linux-v4.19/tools/virtio/ |
D | virtio_test.c | 32 struct virtqueue *vq; member 46 bool vq_notify(struct virtqueue *vq) in vq_notify() argument 48 struct vq_info *info = vq->priv; in vq_notify() 56 void vq_callback(struct virtqueue *vq) in vq_callback() argument 102 info->vq = vring_new_virtqueue(info->idx, in vq_info_add() 106 assert(info->vq); in vq_info_add() 107 info->vq->priv = info; in vq_info_add() 154 static void run_test(struct vdev_info *dev, struct vq_info *vq, in run_test() argument 166 virtqueue_disable_cb(vq->vq); in run_test() 171 r = virtqueue_add_outbuf(vq->vq, &sl, 1, in run_test() [all …]
|
D | vringh_test.c | 27 static bool never_notify_host(struct virtqueue *vq) in never_notify_host() argument 32 static void never_callback_guest(struct virtqueue *vq) in never_callback_guest() argument 70 static bool parallel_notify_host(struct virtqueue *vq) in parallel_notify_host() argument 75 gvdev = container_of(vq->vdev, struct guest_virtio_device, vdev); in parallel_notify_host() 83 static bool no_notify_host(struct virtqueue *vq) in no_notify_host() argument 294 struct virtqueue *vq; in parallel_test() local 317 vq = vring_new_virtqueue(0, RINGSIZE, ALIGN, &gvdev.vdev, true, in parallel_test() 334 while ((dbuf = virtqueue_get_buf(vq, &len)) != NULL) { in parallel_test() 380 err = virtqueue_add_outbuf(vq, sg, num_sg, dbuf, in parallel_test() 383 err = virtqueue_add_inbuf(vq, sg, num_sg, in parallel_test() [all …]
|
/Linux-v4.19/net/vmw_vsock/ |
D | virtio_transport.c | 122 struct virtqueue *vq; in virtio_transport_send_pkt_work() local 128 vq = vsock->vqs[VSOCK_VQ_TX]; in virtio_transport_send_pkt_work() 158 ret = virtqueue_add_sgs(vq, sgs, out_sg, in_sg, pkt, GFP_KERNEL); in virtio_transport_send_pkt_work() 184 virtqueue_kick(vq); in virtio_transport_send_pkt_work() 264 struct virtqueue *vq; in virtio_vsock_rx_fill() local 267 vq = vsock->vqs[VSOCK_VQ_RX]; in virtio_vsock_rx_fill() 287 ret = virtqueue_add_sgs(vq, sgs, 0, 2, pkt, GFP_KERNEL); in virtio_vsock_rx_fill() 293 } while (vq->num_free); in virtio_vsock_rx_fill() 296 virtqueue_kick(vq); in virtio_vsock_rx_fill() 303 struct virtqueue *vq; in virtio_transport_tx_work() local [all …]
|
/Linux-v4.19/drivers/remoteproc/ |
D | remoteproc_virtio.c | 33 static bool rproc_virtio_notify(struct virtqueue *vq) in rproc_virtio_notify() argument 35 struct rproc_vring *rvring = vq->priv; in rproc_virtio_notify() 64 if (!rvring || !rvring->vq) in rproc_vq_interrupt() 67 return vring_interrupt(0, rvring->vq); in rproc_vq_interrupt() 73 void (*callback)(struct virtqueue *vq), in rp_find_vq() argument 80 struct virtqueue *vq; in rp_find_vq() local 106 vq = vring_new_virtqueue(id, len, rvring->align, vdev, false, ctx, in rp_find_vq() 108 if (!vq) { in rp_find_vq() 114 rvring->vq = vq; in rp_find_vq() 115 vq->priv = rvring; in rp_find_vq() [all …]
|
/Linux-v4.19/drivers/staging/media/imx/ |
D | imx-media-capture.c | 371 static int capture_queue_setup(struct vb2_queue *vq, in capture_queue_setup() argument 377 struct capture_priv *priv = vb2_get_drv_priv(vq); in capture_queue_setup() 381 if (vq->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) in capture_queue_setup() 387 count += vq->num_buffers; in capture_queue_setup() 393 *nbuffers = (count < vq->num_buffers) ? 0 : in capture_queue_setup() 394 count - vq->num_buffers; in capture_queue_setup() 415 struct vb2_queue *vq = vb->vb2_queue; in capture_buf_prepare() local 416 struct capture_priv *priv = vb2_get_drv_priv(vq); in capture_buf_prepare() 444 static int capture_start_streaming(struct vb2_queue *vq, unsigned int count) in capture_start_streaming() argument 446 struct capture_priv *priv = vb2_get_drv_priv(vq); in capture_start_streaming() [all …]
|
/Linux-v4.19/drivers/char/hw_random/ |
D | virtio-rng.c | 32 struct virtqueue *vq; member 42 static void random_recv_done(struct virtqueue *vq) in random_recv_done() argument 44 struct virtrng_info *vi = vq->vdev->priv; in random_recv_done() 47 if (!virtqueue_get_buf(vi->vq, &vi->data_avail)) in random_recv_done() 61 virtqueue_add_inbuf(vi->vq, &sg, 1, buf, GFP_KERNEL); in register_buffer() 63 virtqueue_kick(vi->vq); in register_buffer() 127 vi->vq = virtio_find_single_vq(vdev, random_recv_done, "input"); in probe_common() 128 if (IS_ERR(vi->vq)) { in probe_common() 129 err = PTR_ERR(vi->vq); in probe_common()
|
/Linux-v4.19/arch/arm64/kernel/ |
D | fpsimd.c | 267 static unsigned int vq_to_bit(unsigned int vq) in vq_to_bit() argument 269 return SVE_VQ_MAX - vq; in vq_to_bit() 355 #define ZREG(sve_state, vq, n) ((char *)(sve_state) + \ argument 356 (SVE_SIG_ZREG_OFFSET(vq, n) - SVE_SIG_REGS_OFFSET)) 371 unsigned int vq; in fpsimd_to_sve() local 379 vq = sve_vq_from_vl(task->thread.sve_vl); in fpsimd_to_sve() 381 memcpy(ZREG(sst, vq, i), &fst->vregs[i], in fpsimd_to_sve() 397 unsigned int vq; in sve_to_fpsimd() local 405 vq = sve_vq_from_vl(task->thread.sve_vl); in sve_to_fpsimd() 407 memcpy(&fst->vregs[i], ZREG(sst, vq, i), in sve_to_fpsimd() [all …]
|
/Linux-v4.19/drivers/scsi/ |
D | virtio_scsi.c | 68 struct virtqueue *vq; member 217 struct virtqueue *vq = virtscsi_vq->vq; in virtscsi_vq_done() local 221 virtqueue_disable_cb(vq); in virtscsi_vq_done() 222 while ((buf = virtqueue_get_buf(vq, &len)) != NULL) in virtscsi_vq_done() 225 if (unlikely(virtqueue_is_broken(vq))) in virtscsi_vq_done() 227 } while (!virtqueue_enable_cb(vq)); in virtscsi_vq_done() 231 static void virtscsi_req_done(struct virtqueue *vq) in virtscsi_req_done() argument 233 struct Scsi_Host *sh = virtio_scsi_host(vq->vdev); in virtscsi_req_done() 235 int index = vq->index - VIRTIO_SCSI_VQ_BASE; in virtscsi_req_done() 259 static void virtscsi_ctrl_done(struct virtqueue *vq) in virtscsi_ctrl_done() argument [all …]
|
/Linux-v4.19/drivers/media/v4l2-core/ |
D | v4l2-mem2mem.c | 434 struct vb2_queue *vq; in v4l2_m2m_reqbufs() local 437 vq = v4l2_m2m_get_vq(m2m_ctx, reqbufs->type); in v4l2_m2m_reqbufs() 438 ret = vb2_reqbufs(vq, reqbufs); in v4l2_m2m_reqbufs() 442 vq->owner = reqbufs->count ? file->private_data : NULL; in v4l2_m2m_reqbufs() 451 struct vb2_queue *vq; in v4l2_m2m_querybuf() local 455 vq = v4l2_m2m_get_vq(m2m_ctx, buf->type); in v4l2_m2m_querybuf() 456 ret = vb2_querybuf(vq, buf); in v4l2_m2m_querybuf() 459 if (buf->memory == V4L2_MEMORY_MMAP && !V4L2_TYPE_IS_OUTPUT(vq->type)) { in v4l2_m2m_querybuf() 460 if (V4L2_TYPE_IS_MULTIPLANAR(vq->type)) { in v4l2_m2m_querybuf() 476 struct vb2_queue *vq; in v4l2_m2m_qbuf() local [all …]
|