/openbmc/linux/include/linux/ |
H A D | virtio.h | 30 struct virtqueue { struct 32 void (*callback)(struct virtqueue *vq); argument 42 int virtqueue_add_outbuf(struct virtqueue *vq, argument 47 int virtqueue_add_inbuf(struct virtqueue *vq, 52 int virtqueue_add_inbuf_ctx(struct virtqueue *vq, 58 int virtqueue_add_sgs(struct virtqueue *vq, 65 struct device *virtqueue_dma_dev(struct virtqueue *vq); 67 bool virtqueue_kick(struct virtqueue *vq); 69 bool virtqueue_kick_prepare(struct virtqueue *vq); 71 bool virtqueue_notify(struct virtqueue *vq); [all …]
|
H A D | virtio_ring.h | 60 struct virtqueue; 69 struct virtqueue *vring_create_virtqueue(unsigned int index, 76 bool (*notify)(struct virtqueue *vq), 77 void (*callback)(struct virtqueue *vq), 84 struct virtqueue *vring_create_virtqueue_dma(unsigned int index, 91 bool (*notify)(struct virtqueue *vq), 92 void (*callback)(struct virtqueue *vq), 100 struct virtqueue *vring_new_virtqueue(unsigned int index, 107 bool (*notify)(struct virtqueue *vq), 108 void (*callback)(struct virtqueue *vq), [all …]
|
H A D | virtio_config.h | 19 typedef void vq_callback_t(struct virtqueue *); 107 struct virtqueue *vqs[], vq_callback_t *callbacks[], 115 int (*set_vq_affinity)(struct virtqueue *vq, 121 int (*disable_vq_and_reset)(struct virtqueue *vq); 122 int (*enable_vq_after_reset)(struct virtqueue *vq); 210 struct virtqueue *virtio_find_single_vq(struct virtio_device *vdev, in virtio_find_single_vq() 215 struct virtqueue *vq; in virtio_find_single_vq() 225 struct virtqueue *vqs[], vq_callback_t *callbacks[], in virtio_find_vqs() 234 struct virtqueue *vqs[], vq_callback_t *callbacks[], in virtio_find_vqs_ctx() 318 int virtqueue_set_affinity(struct virtqueue *vq, const struct cpumask *cpu_mask) in virtqueue_set_affinity()
|
/openbmc/linux/tools/virtio/linux/ |
H A D | virtio.h | 20 struct virtqueue { struct 22 void (*callback)(struct virtqueue *vq); argument 33 int virtqueue_add_sgs(struct virtqueue *vq, argument 40 int virtqueue_add_outbuf(struct virtqueue *vq, 45 int virtqueue_add_inbuf(struct virtqueue *vq, 50 bool virtqueue_kick(struct virtqueue *vq); 52 void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len); 54 void virtqueue_disable_cb(struct virtqueue *vq); 56 bool virtqueue_enable_cb(struct virtqueue *vq); 57 bool virtqueue_enable_cb_delayed(struct virtqueue *vq); [all …]
|
/openbmc/u-boot/include/ |
H A D | virtio_ring.h | 99 struct virtqueue { struct 178 int virtqueue_add(struct virtqueue *vq, struct virtio_sg *sgs[], 192 void virtqueue_kick(struct virtqueue *vq); 211 void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len); 229 struct virtqueue *vring_create_virtqueue(unsigned int index, unsigned int num, 244 void vring_del_virtqueue(struct virtqueue *vq); 252 unsigned int virtqueue_get_vring_size(struct virtqueue *vq); 260 ulong virtqueue_get_desc_addr(struct virtqueue *vq); 268 ulong virtqueue_get_avail_addr(struct virtqueue *vq); 276 ulong virtqueue_get_used_addr(struct virtqueue *vq); [all …]
|
/openbmc/u-boot/drivers/virtio/ |
H A D | virtio_ring.c | 16 int virtqueue_add(struct virtqueue *vq, struct virtio_sg *sgs[], in virtqueue_add() 102 static bool virtqueue_kick_prepare(struct virtqueue *vq) in virtqueue_kick_prepare() 128 void virtqueue_kick(struct virtqueue *vq) in virtqueue_kick() 134 static void detach_buf(struct virtqueue *vq, unsigned int head) in detach_buf() 154 static inline bool more_used(const struct virtqueue *vq) in more_used() 160 void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len) in virtqueue_get_buf() 204 static struct virtqueue *__vring_new_virtqueue(unsigned int index, in __vring_new_virtqueue() 209 struct virtqueue *vq; in __vring_new_virtqueue() 243 struct virtqueue *vring_create_virtqueue(unsigned int index, unsigned int num, in vring_create_virtqueue() 247 struct virtqueue *vq; in vring_create_virtqueue() [all …]
|
H A D | virtio_sandbox.c | 88 static struct virtqueue *virtio_sandbox_setup_vq(struct udevice *udev, in virtio_sandbox_setup_vq() 92 struct virtqueue *vq; in virtio_sandbox_setup_vq() 118 static void virtio_sandbox_del_vq(struct virtqueue *vq) in virtio_sandbox_del_vq() 126 struct virtqueue *vq, *n; in virtio_sandbox_del_vqs() 135 struct virtqueue *vqs[]) in virtio_sandbox_find_vqs() 150 static int virtio_sandbox_notify(struct udevice *udev, struct virtqueue *vq) in virtio_sandbox_notify()
|
H A D | virtio_pci_legacy.c | 190 static struct virtqueue *virtio_pci_setup_vq(struct udevice *udev, in virtio_pci_setup_vq() 194 struct virtqueue *vq; in virtio_pci_setup_vq() 225 static void virtio_pci_del_vq(struct virtqueue *vq) in virtio_pci_del_vq() 241 struct virtqueue *vq, *n; in virtio_pci_del_vqs() 250 struct virtqueue *vqs[]) in virtio_pci_find_vqs() 265 static int virtio_pci_notify(struct udevice *udev, struct virtqueue *vq) in virtio_pci_notify()
|
H A D | virtio_mmio.c | 188 static struct virtqueue *virtio_mmio_setup_vq(struct udevice *udev, in virtio_mmio_setup_vq() 192 struct virtqueue *vq; in virtio_mmio_setup_vq() 277 static void virtio_mmio_del_vq(struct virtqueue *vq) in virtio_mmio_del_vq() 297 struct virtqueue *vq, *n; in virtio_mmio_del_vqs() 306 struct virtqueue *vqs[]) in virtio_mmio_find_vqs() 321 static int virtio_mmio_notify(struct udevice *udev, struct virtqueue *vq) in virtio_mmio_notify()
|
/openbmc/linux/drivers/virtio/ |
H A D | virtio_ring.c | 155 struct virtqueue vq; 208 bool (*notify)(struct virtqueue *vq); 226 static struct virtqueue *__vring_new_virtqueue(unsigned int index, 231 bool (*notify)(struct virtqueue *), 232 void (*callback)(struct virtqueue *), 236 static void vring_free(struct virtqueue *_vq); 492 static struct vring_desc *alloc_indirect_split(struct virtqueue *_vq, in alloc_indirect_split() 515 static inline unsigned int virtqueue_add_desc_split(struct virtqueue *vq, in virtqueue_add_desc_split() 544 static inline int virtqueue_add_split(struct virtqueue *_vq, in virtqueue_add_split() 734 static bool virtqueue_kick_prepare_split(struct virtqueue *_vq) in virtqueue_kick_prepare_split() [all …]
|
H A D | virtio_pci_common.h | 35 struct virtqueue *vq; 79 struct virtqueue *(*setup_vq)(struct virtio_pci_device *vp_dev, 82 void (*callback)(struct virtqueue *vq), 108 bool vp_notify(struct virtqueue *vq); 113 struct virtqueue *vqs[], vq_callback_t *callbacks[], 123 int vp_set_vq_affinity(struct virtqueue *vq, const struct cpumask *cpu_mask);
|
H A D | virtio_vdpa.c | 40 struct virtqueue *vq; 106 static bool virtio_vdpa_notify(struct virtqueue *vq) in virtio_vdpa_notify() 116 static bool virtio_vdpa_notify_with_data(struct virtqueue *vq) in virtio_vdpa_notify_with_data() 143 static struct virtqueue * 145 void (*callback)(struct virtqueue *vq), in virtio_vdpa_setup_vq() 153 bool (*notify)(struct virtqueue *vq) = virtio_vdpa_notify; in virtio_vdpa_setup_vq() 155 struct virtqueue *vq; in virtio_vdpa_setup_vq() 267 static void virtio_vdpa_del_vq(struct virtqueue *vq) in virtio_vdpa_del_vq() 290 struct virtqueue *vq, *n; in virtio_vdpa_del_vqs() 357 struct virtqueue *vqs[], in virtio_vdpa_find_vqs() [all …]
|
H A D | virtio_pci_modern.c | 182 static int vp_active_vq(struct virtqueue *vq, u16 msix_vec) in vp_active_vq() 205 static int vp_modern_disable_vq_and_reset(struct virtqueue *vq) in vp_modern_disable_vq_and_reset() 244 static int vp_modern_enable_vq_after_reset(struct virtqueue *vq) in vp_modern_enable_vq_after_reset() 291 static bool vp_notify_with_data(struct virtqueue *vq) in vp_notify_with_data() 300 static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev, in setup_vq() 303 void (*callback)(struct virtqueue *vq), in setup_vq() 310 bool (*notify)(struct virtqueue *vq); in setup_vq() 311 struct virtqueue *vq; in setup_vq() 358 struct virtqueue *vqs[], in vp_modern_find_vqs() 364 struct virtqueue *vq; in vp_modern_find_vqs() [all …]
|
H A D | virtio_pci_common.c | 41 bool vp_notify(struct virtqueue *vq) in vp_notify() 174 static struct virtqueue *vp_setup_vq(struct virtio_device *vdev, unsigned int index, in vp_setup_vq() 175 void (*callback)(struct virtqueue *vq), in vp_setup_vq() 182 struct virtqueue *vq; in vp_setup_vq() 211 static void vp_del_vq(struct virtqueue *vq) in vp_del_vq() 235 struct virtqueue *vq, *n; in vp_del_vqs() 285 struct virtqueue *vqs[], vq_callback_t *callbacks[], in vp_find_vqs_msix() 361 struct virtqueue *vqs[], vq_callback_t *callbacks[], in vp_find_vqs_intx() 400 struct virtqueue *vqs[], vq_callback_t *callbacks[], in vp_find_vqs() 433 int vp_set_vq_affinity(struct virtqueue *vq, const struct cpumask *cpu_mask) in vp_set_vq_affinity()
|
H A D | virtio_mmio.c | 99 struct virtqueue *vq; 279 static bool vm_notify(struct virtqueue *vq) in vm_notify() 289 static bool vm_notify_with_data(struct virtqueue *vq) in vm_notify_with_data() 329 static void vm_del_vq(struct virtqueue *vq) in vm_del_vq() 357 struct virtqueue *vq, *n; in vm_del_vqs() 372 static struct virtqueue *vm_setup_vq(struct virtio_device *vdev, unsigned int index, in vm_setup_vq() 373 void (*callback)(struct virtqueue *vq), in vm_setup_vq() 377 bool (*notify)(struct virtqueue *vq); in vm_setup_vq() 379 struct virtqueue *vq; in vm_setup_vq() 491 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_balloon.c | 57 struct virtqueue *inflate_vq, *deflate_vq, *stats_vq, *free_page_vq; 120 struct virtqueue *reporting_vq; 138 static void balloon_ack(struct virtqueue *vq) in balloon_ack() 145 static void tell_host(struct virtio_balloon *vb, struct virtqueue *vq) in tell_host() 166 struct virtqueue *vq = vb->reporting_vq; in virtballoon_free_page_report() 363 static void stats_request(struct virtqueue *vq) in stats_request() 375 struct virtqueue *vq; in stats_handle_request() 496 struct virtqueue *vqs[VIRTIO_BALLOON_VQ_MAX]; in init_vqs() 585 struct virtqueue *vq = vb->free_page_vq; in send_cmd_id_start() 604 struct virtqueue *vq = vb->free_page_vq; in send_cmd_id_stop() [all …]
|
/openbmc/qemu/docs/devel/migration/ |
H A D | virtio.rst | 47 - save common virtqueue 51 virtqueue fields 62 - virtio-1 virtqueue 84 - load common virtqueue 88 virtqueue fields 96 - virtio-1 virtqueue 100 - virtqueue index sanity
|
/openbmc/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 */ 122 virtqueue. virtio_device_ready() is used to enable the virtqueue and to 145 appropriate virtqueue using any of the virtqueue_add_inbuf(), 149 `scatterlists`, respectively. Then, once the virtqueue is set up, a call 169 read the data produced by the device (if the virtqueue was set up with 176 The virtqueue callbacks can be disabled and re-enabled using the 188 device or the virtqueue (virtio_reset_device()).
|
/openbmc/linux/net/vmw_vsock/ |
H A D | virtio_transport.c | 31 struct virtqueue *vqs[VSOCK_VQ_MAX]; 91 struct virtqueue *vq; in virtio_transport_send_pkt_work() 133 struct virtqueue *rx_vq = vsock->vqs[VSOCK_VQ_RX]; in virtio_transport_send_pkt_work() 206 struct virtqueue *rx_vq = vsock->vqs[VSOCK_VQ_RX]; in virtio_transport_cancel_pkt() 226 struct virtqueue *vq; in virtio_vsock_rx_fill() 257 struct virtqueue *vq; in virtio_transport_tx_work() 287 struct virtqueue *vq = vsock->vqs[VSOCK_VQ_RX]; in virtio_transport_more_replies() 301 struct virtqueue *vq; in virtio_vsock_event_fill_one() 363 struct virtqueue *vq; in virtio_transport_event_work() 390 static void virtio_vsock_event_done(struct virtqueue *vq) in virtio_vsock_event_done() [all …]
|
/openbmc/linux/drivers/gpu/drm/virtio/ |
H A D | virtgpu_trace.h | 12 TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr, u32 seqno), 43 TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr, u32 seqno), 48 TP_PROTO(struct virtqueue *vq, struct virtio_gpu_ctrl_hdr *hdr, u32 seqno),
|
/openbmc/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() 137 struct virtqueue *vq = vi->vq; in virtio_i2c_xfer()
|
/openbmc/linux/drivers/nvdimm/ |
H A D | virtio_pmem.h | 36 struct virtqueue *req_vq; 53 void virtio_pmem_host_ack(struct virtqueue *vq);
|
/openbmc/linux/Documentation/userspace-api/ |
H A D | vduse.rst | 28 2. Setup each virtqueue with ioctl(VDUSE_VQ_SETUP) on /dev/vduse/$NAME. 104 add per-virtqueue configuration such as the max size of virtqueue to the device. 140 - VDUSE_GET_VQ_STATE: Get the state for virtqueue, userspace should return 141 avail index for split virtqueue or the device/driver ring wrap counters and 142 the avail and used index for packed virtqueue. 157 1. Get the specified virtqueue's information with the VDUSE_VQ_GET_INFO ioctl, 230 5. Inject an interrupt for specific virtqueue with the VDUSE_INJECT_VQ_IRQ ioctl
|
/openbmc/linux/drivers/bluetooth/ |
H A D | virtio_bt.c | 24 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()
|