Home
last modified time | relevance | path

Searched refs:virtqueue (Results 1 – 25 of 48) sorted by relevance

12

/linux/include/linux/
H A Dvirtio.h34 struct virtqueue { struct
36 void (*callback)(struct virtqueue *vq); argument
55 int virtqueue_add_outbuf(struct virtqueue *vq,
60 int virtqueue_add_inbuf(struct virtqueue *vq,
65 int virtqueue_add_inbuf_cache_clean(struct virtqueue *vq,
70 int virtqueue_add_inbuf_ctx(struct virtqueue *vq,
76 int virtqueue_add_inbuf_premapped(struct virtqueue *vq,
82 int virtqueue_add_outbuf_premapped(struct virtqueue *vq,
87 int virtqueue_add_sgs(struct virtqueue *vq,
94 struct device *virtqueue_dma_dev(struct virtqueue *vq);
[all …]
H A Dvirtio_config.h19 typedef void vq_callback_t(struct virtqueue *);
122 struct virtqueue *vqs[],
132 int (*set_vq_affinity)(struct virtqueue *vq,
138 int (*disable_vq_and_reset)(struct virtqueue *vq);
139 int (*enable_vq_after_reset)(struct virtqueue *vq);
294 struct virtqueue *vqs[], in virtio_find_vqs()
302 struct virtqueue *virtio_find_single_vq(struct virtio_device *vdev, in virtio_find_single_vq()
308 struct virtqueue *vq; in virtio_find_single_vq()
392 int virtqueue_set_affinity(struct virtqueue *vq, const struct cpumask *cpu_mask) in virtqueue_set_affinity()
/linux/drivers/virtio/
H A Dvirtio_ring.c193 struct virtqueue vq;
258 bool (*notify)(struct virtqueue *vq);
276 static void vring_free(struct virtqueue *_vq);
1298 static struct virtqueue *__vring_new_virtqueue_split(unsigned int index, in __vring_new_virtqueue_split()
1303 bool (*notify)(struct virtqueue *), in __vring_new_virtqueue_split() argument
1304 void (*callback)(struct virtqueue *), in __vring_new_virtqueue_split() argument
1357 static struct virtqueue *vring_create_virtqueue_split( in vring_create_virtqueue_split()
1365 bool (*notify)(struct virtqueue *), in vring_create_virtqueue_split() argument
1366 void (*callback)(struct virtqueue *), in vring_create_virtqueue_split() argument
1371 struct virtqueue *vq; in vring_create_virtqueue_split()
[all …]
H A Dvirtio_vdpa.c93 static bool virtio_vdpa_notify(struct virtqueue *vq) in virtio_vdpa_notify()
103 static bool virtio_vdpa_notify_with_data(struct virtqueue *vq) in virtio_vdpa_notify_with_data()
125 struct virtqueue *vq = private; in virtio_vdpa_virtqueue_cb()
130 static struct virtqueue *
132 void (*callback)(struct virtqueue *vq), in virtio_vdpa_setup_vq()
137 bool (*notify)(struct virtqueue *vq) = virtio_vdpa_notify; in virtio_vdpa_setup_vq()
139 struct virtqueue *vq; in virtio_vdpa_setup_vq()
246 static void virtio_vdpa_del_vq(struct virtqueue *vq) in virtio_vdpa_del_vq()
261 struct virtqueue *vq, *n; in virtio_vdpa_del_vqs()
329 struct virtqueue *vqs[], in virtio_vdpa_find_vqs()
[all …]
H A Dvirtio_pci_common.c51 bool vp_notify(struct virtqueue *vq) in vp_notify()
203 static struct virtqueue *vp_setup_vq(struct virtio_device *vdev, unsigned int index, in vp_setup_vq()
204 void (*callback)(struct virtqueue *vq), in vp_setup_vq()
212 struct virtqueue *vq; in vp_setup_vq()
244 static void vp_del_vq(struct virtqueue *vq, struct virtio_pci_vq_info *info) in vp_del_vq()
268 struct virtqueue *vq, *n; in vp_del_vqs()
326 static struct virtqueue *
334 struct virtqueue *vq; in vp_find_one_vq_msix()
374 struct virtqueue *vqs[], in vp_find_vqs_msix()
383 struct virtqueue *vq; in vp_find_vqs_msix()
[all …]
H A Dvirtio_mmio.c264 static bool vm_notify(struct virtqueue *vq) in vm_notify()
274 static bool vm_notify_with_data(struct virtqueue *vq) in vm_notify_with_data()
288 struct virtqueue *vq; in vm_interrupt()
311 static void vm_del_vq(struct virtqueue *vq) in vm_del_vq()
331 struct virtqueue *vq, *n; in vm_del_vqs()
346 static struct virtqueue *vm_setup_vq(struct virtio_device *vdev, unsigned int index, in vm_setup_vq()
347 void (*callback)(struct virtqueue *vq), in vm_setup_vq()
351 bool (*notify)(struct virtqueue *vq); in vm_setup_vq()
352 struct virtqueue *vq; in vm_setup_vq()
447 struct virtqueue *vqs[], in vm_find_vqs()
H A Dvirtio_rtc_driver.c36 struct virtqueue *vq;
134 static int viortc_feed_vq(struct viortc_dev *viortc, struct virtqueue *vq, in viortc_feed_vq()
227 static void viortc_do_cb(struct virtqueue *vq, in viortc_do_cb()
229 struct virtqueue *vq, in viortc_do_cb()
279 struct virtqueue *vq, in viortc_requestq_hdlr()
297 static void viortc_cb_requestq(struct virtqueue *vq) in viortc_cb_requestq()
316 struct virtqueue *vq, in viortc_alarmq_hdlr()
376 static void viortc_cb_alarmq(struct virtqueue *vq) in viortc_cb_alarmq()
1140 struct virtqueue *vq; in viortc_populate_vq()
1214 struct virtqueue *vqs[VIORTC_MAX_NR_QUEUES]; in viortc_init_vqs()
[all …]
H A Dvirtio_pci_legacy.c110 static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev, in setup_vq()
113 void (*callback)(struct virtqueue *vq), in setup_vq()
118 struct virtqueue *vq; in setup_vq()
173 struct virtqueue *vq = info->vq; in del_vq()
H A Dvirtio_pci_modern.c47 void vp_modern_avq_done(struct virtqueue *vq) in vp_modern_avq_done()
84 struct virtqueue *vq; in virtqueue_exec_admin_cmd()
352 struct virtqueue *vq; in vp_modern_avq_cleanup()
567 static int vp_active_vq(struct virtqueue *vq, u16 msix_vec) in vp_active_vq()
590 static int vp_modern_disable_vq_and_reset(struct virtqueue *vq) in vp_modern_disable_vq_and_reset()
629 static int vp_modern_enable_vq_after_reset(struct virtqueue *vq) in vp_modern_enable_vq_after_reset()
676 static bool vp_notify_with_data(struct virtqueue *vq) in vp_notify_with_data()
685 static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev, in setup_vq()
688 void (*callback)(struct virtqueue *vq), in setup_vq()
695 bool (*notify)(struct virtqueue *vq); in setup_vq()
[all …]
H A Dvirtio_balloon.c57 struct virtqueue *inflate_vq, *deflate_vq, *stats_vq, *free_page_vq;
120 struct virtqueue *reporting_vq;
176 static void balloon_ack(struct virtqueue *vq) in balloon_ack()
183 static void tell_host(struct virtio_balloon *vb, struct virtqueue *vq) in tell_host()
204 struct virtqueue *vq = vb->reporting_vq; in virtballoon_free_page_report()
429 static void stats_request(struct virtqueue *vq) in stats_request()
443 struct virtqueue *vq; in stats_handle_request()
580 struct virtqueue *vqs[VIRTIO_BALLOON_VQ_MAX]; in init_vqs()
660 struct virtqueue *vq = vb->free_page_vq; in send_cmd_id_start()
679 struct virtqueue *vq = vb->free_page_vq; in send_cmd_id_stop()
[all …]
/linux/net/vmw_vsock/
H A Dvirtio_transport.c32 struct virtqueue *vqs[VSOCK_VQ_MAX];
101 static int virtio_transport_send_skb(struct sk_buff *skb, struct virtqueue *vq, in virtio_transport_send_skb()
162 struct virtqueue *vq; in virtio_transport_send_pkt_work()
191 struct virtqueue *rx_vq = vsock->vqs[VSOCK_VQ_RX]; in virtio_transport_send_pkt_work()
219 struct virtqueue *vq = vsock->vqs[VSOCK_VQ_TX]; in virtio_transport_send_skb_fast_path()
295 struct virtqueue *rx_vq = vsock->vqs[VSOCK_VQ_RX]; in virtio_transport_cancel_pkt()
315 struct virtqueue *vq; in virtio_vsock_rx_fill()
346 struct virtqueue *vq; in virtio_transport_tx_work()
376 struct virtqueue *vq = vsock->vqs[VSOCK_VQ_RX]; in virtio_transport_more_replies()
390 struct virtqueue *vq; in virtio_vsock_event_fill_one()
[all …]
/linux/Documentation/driver-api/virtio/
H A Dwriting_virtio_drivers.rst24 virtqueue definitions in the device. A basic driver skeleton could look
34 struct virtqueue *vq;
37 static void virtio_dummy_recv_cb(struct virtqueue *vq)
57 /* the device has a single virtqueue */
121 virtqueue. virtio_device_ready() is used to enable the virtqueue and to
144 appropriate virtqueue using any of the virtqueue_add_inbuf(),
148 `scatterlists`, respectively. Then, once the virtqueue is set up, a call
168 read the data produced by the device (if the virtqueue was set up with
175 The virtqueue callbacks can be disabled and re-enabled using the
187 device or the virtqueue (virtio_reset_device()).
H A Dvirtio.rst51 The :c:type:`vring_virtqueue` struct models a virtqueue, including the
53 :c:type:`virtqueue` struct, which is the data structure that's
57 :identifiers: struct virtqueue
63 a virtqueue during the virtqueue setup process (transport-specific).
/linux/drivers/i2c/busses/
H A Di2c-virtio.c31 struct virtqueue *vq;
48 static void virtio_i2c_msg_done(struct virtqueue *vq) in virtio_i2c_msg_done()
57 static int virtio_i2c_prepare_reqs(struct virtqueue *vq, in virtio_i2c_prepare_reqs()
109 static int virtio_i2c_complete_reqs(struct virtqueue *vq, in virtio_i2c_complete_reqs()
138 struct virtqueue *vq = vi->vq; in virtio_i2c_xfer()
/linux/drivers/bluetooth/
H A Dvirtio_bt.c24 struct virtqueue *vqs[VIRTBT_NUM_VQS];
31 struct virtqueue *vq = vbt->vqs[VIRTBT_VQ_RX]; in virtbt_add_inbuf()
77 struct virtqueue *vq = vbt->vqs[i]; in virtbt_close_vdev()
239 static void virtbt_tx_done(struct virtqueue *vq) in virtbt_tx_done()
248 static void virtbt_rx_done(struct virtqueue *vq) in virtbt_rx_done()
/linux/drivers/char/
H A Dvirtio_console.c147 struct virtqueue *c_ivq, *c_ovq;
156 struct virtqueue **in_vqs, **out_vqs;
188 struct virtqueue *in_vq, *out_vq;
308 struct virtqueue *vq) in find_port_by_vq()
483 static int add_inbuf(struct virtqueue *vq, struct port_buffer *buf) in add_inbuf()
543 struct virtqueue *vq; in __send_control_msg()
600 struct virtqueue *out_vq; in __send_to_port()
1290 static int fill_queue(struct virtqueue *vq, spinlock_t *lock) in fill_queue()
1663 struct virtqueue *vq; in control_work_handler()
1689 static void flush_bufs(struct virtqueue *vq, bool can_sleep) in flush_bufs()
[all …]
/linux/drivers/s390/virtio/
H A Dvirtio_ccw.c159 struct virtqueue *vq;
233 static void drop_airq_indicator(struct virtqueue *vq, struct airq_info *info) in drop_airq_indicator()
303 static unsigned long *get_airq_indicator(struct virtqueue *vqs[], int nvqs, in get_airq_indicator()
441 static inline bool virtio_ccw_do_kvm_notify(struct virtqueue *vq, u32 data) in virtio_ccw_do_kvm_notify()
458 static bool virtio_ccw_kvm_notify(struct virtqueue *vq) in virtio_ccw_kvm_notify()
463 static bool virtio_ccw_kvm_notify_with_data(struct virtqueue *vq) in virtio_ccw_kvm_notify_with_data()
484 static void virtio_ccw_del_vq(struct virtqueue *vq, struct ccw1 *ccw) in virtio_ccw_del_vq()
533 struct virtqueue *vq, *n; in virtio_ccw_del_vqs()
549 static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev, in virtio_ccw_setup_vq()
555 bool (*notify)(struct virtqueue *vq); in virtio_ccw_setup_vq()
[all …]
/linux/drivers/remoteproc/
H A Dremoteproc_virtio.c65 static bool rproc_virtio_notify(struct virtqueue *vq) in rproc_virtio_notify()
103 static struct virtqueue *rp_find_vq(struct virtio_device *vdev, in rp_find_vq()
105 void (*callback)(struct virtqueue *vq), in rp_find_vq()
114 struct virtqueue *vq; in rp_find_vq()
168 struct virtqueue *vq, *n; in __rproc_virtio_del_vqs()
184 struct virtqueue *vqs[], in rproc_virtio_find_vqs()
/linux/arch/um/drivers/
H A Dvirtio_pcidev.c38 struct virtqueue *cmd_vq, *irq_vq;
393 static void virtio_pcidev_irq_vq_addbuf(struct virtqueue *vq, void *buf, bool kick) in virtio_pcidev_irq_vq_addbuf()
404 static void virtio_pcidev_handle_irq_message(struct virtqueue *vq, in virtio_pcidev_handle_irq_message()
435 static void virtio_pcidev_cmd_vq_cb(struct virtqueue *vq) in virtio_pcidev_cmd_vq_cb()
449 static void virtio_pcidev_irq_vq_cb(struct virtqueue *vq) in virtio_pcidev_irq_vq_cb()
469 struct virtqueue *vqs[2]; in virtio_pcidev_init_vqs()
H A Dvirtio_uml.c383 struct virtqueue *vq; in vu_req_read_message()
445 struct virtqueue *vq; in vu_req_interrupt()
791 static bool vu_notify(struct virtqueue *vq) in vu_notify()
819 struct virtqueue *vq = opaque; in vu_interrupt()
872 static void vu_del_vq(struct virtqueue *vq) in vu_del_vq()
895 struct virtqueue *vq, *n; in vu_del_vqs()
910 struct virtqueue *vq) in vu_setup_vq_call_fd()
957 static struct virtqueue *vu_setup_vq(struct virtio_device *vdev, in vu_setup_vq()
964 struct virtqueue *vq; in vu_setup_vq()
1035 struct virtqueue *vqs[], in vu_find_vqs()
[all …]
/linux/sound/virtio/
H A Dvirtio_pcm.h105 void virtsnd_pcm_tx_notify_cb(struct virtqueue *vqueue);
107 void virtsnd_pcm_rx_notify_cb(struct virtqueue *vqueue);
H A Dvirtio_pcm_msg.c205 struct virtqueue *vqueue = virtsnd_pcm_queue(vss)->vqueue; in virtsnd_pcm_msg_send()
362 void virtsnd_pcm_tx_notify_cb(struct virtqueue *vqueue) in virtsnd_pcm_tx_notify_cb()
375 void virtsnd_pcm_rx_notify_cb(struct virtqueue *vqueue) in virtsnd_pcm_rx_notify_cb()
/linux/drivers/crypto/virtio/
H A Dvirtio_crypto_core.c30 static void virtcrypto_ctrlq_callback(struct virtqueue *vq) in virtcrypto_ctrlq_callback()
76 struct virtqueue *vq = data_vq->vq; in virtcrypto_done_task()
94 static void virtcrypto_dataq_callback(struct virtqueue *vq) in virtcrypto_dataq_callback()
105 struct virtqueue **vqs; in virtcrypto_find_vqs()
483 struct virtqueue *vq; in virtcrypto_free_unused_reqs()
/linux/drivers/scsi/
H A Dvirtio_scsi.c73 struct virtqueue *vq;
188 struct virtqueue *vq = virtscsi_vq->vq; in virtscsi_vq_done()
200 static void virtscsi_req_done(struct virtqueue *vq) in virtscsi_req_done()
228 static void virtscsi_ctrl_done(struct virtqueue *vq) in virtscsi_ctrl_done()
427 static void virtscsi_event_done(struct virtqueue *vq) in virtscsi_event_done()
435 static int __virtscsi_add_cmd(struct virtqueue *vq, in __virtscsi_add_cmd()
831 struct virtqueue *vq) in virtscsi_init_vq()
851 struct virtqueue **vqs; in virtscsi_init()
856 vqs = kmalloc_objs(struct virtqueue *, num_vqs); in virtscsi_init()
/linux/Documentation/filesystems/
H A Dvirtiofs.rst64 FUSE requests are placed into a virtqueue and processed by the host. The
73 This is especially important if the virtqueue becomes full since it is then
75 the virtio-fs device uses a "hiprio" virtqueue specifically for requests that

12