| /linux/include/linux/ |
| H A D | virtio.h | 34 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 D | virtio_config.h | 19 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 D | virtio_ring.c | 193 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 D | virtio_vdpa.c | 93 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 D | virtio_pci_common.c | 51 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 D | virtio_mmio.c | 264 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 D | virtio_pci_legacy.c | 110 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 D | virtio_rtc_driver.c | 36 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 D | virtio_pci_modern.c | 47 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 D | virtio_input.c | 19 struct virtqueue *evt, *sts; 36 static void virtinput_recv_events(struct virtqueue *vq) in virtinput_recv_events() 109 static void virtinput_recv_status(struct virtqueue *vq) in virtinput_recv_status() 195 struct virtqueue *vqs[2]; in virtinput_init_vqs()
|
| /linux/net/vmw_vsock/ |
| H A D | virtio_transport.c | 32 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() 261 * on the virtqueue using virtio_transport_send_skb_fast_path. in virtio_transport_send_pkt() 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 *v in virtio_transport_more_replies() [all...] |
| /linux/Documentation/driver-api/virtio/ |
| H A D | writing_virtio_drivers.rst | 24 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 D | virtio.rst | 51 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 D | i2c-virtio.c | 31 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 D | virtio_bt.c | 25 struct virtqueue *vqs[VIRTBT_NUM_VQS]; 32 struct virtqueue *vq = vbt->vqs[VIRTBT_VQ_RX]; in virtbt_add_inbuf() 78 struct virtqueue *vq = vbt->vqs[i]; in virtbt_close_vdev() 264 static void virtbt_tx_done(struct virtqueue *vq) in virtbt_tx_done() 273 static void virtbt_rx_done(struct virtqueue *vq) in virtbt_rx_done()
|
| /linux/drivers/char/ |
| H A D | virtio_console.c | 147 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 D | virtio_ccw.c | 159 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 D | remoteproc_virtio.c | 65 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 D | virtio_pcidev.c | 38 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 D | virtio_uml.c | 383 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 D | virtio_pcm.h | 104 void virtsnd_pcm_tx_notify_cb(struct virtqueue *vqueue); 106 void virtsnd_pcm_rx_notify_cb(struct virtqueue *vqueue);
|
| H A D | virtio_pcm_msg.c | 205 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()
|
| H A D | virtio_card.c | 29 static void virtsnd_event_send(struct virtqueue *vqueue, in virtsnd_event_send() 82 static void virtsnd_event_notify_cb(struct virtqueue *vqueue) in virtsnd_event_notify_cb() 121 struct virtqueue *vqs[VIRTIO_SND_VQ_MAX] = { 0 }; in virtsnd_find_vqs()
|
| /linux/Documentation/filesystems/ |
| H A D | virtiofs.rst | 64 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
|
| /linux/tools/virtio/ |
| H A D | vringh_test.c | 27 static bool never_notify_host(struct virtqueue *vq) in never_notify_host() 32 static void never_callback_guest(struct virtqueue *vq) in never_callback_guest() 70 static bool parallel_notify_host(struct virtqueue *vq) in parallel_notify_host() 83 static bool no_notify_host(struct virtqueue *vq) in no_notify_host() 297 struct virtqueue *vq; in parallel_test() 445 struct virtqueue *vq; in main()
|