/spdk/lib/virtio/ |
H A D | virtio.c | 35 virtio_init_vring(struct virtqueue *vq) in virtio_init_vring() argument 37 int size = vq->vq_nentries; in virtio_init_vring() 38 struct vring *vr = &vq->vq_ring; in virtio_init_vring() 39 uint8_t *ring_mem = vq->vq_ring_virt_mem; in virtio_init_vring() 44 memset(ring_mem, 0, vq->vq_ring_size); in virtio_init_vring() 46 vq->vq_used_cons_idx = 0; in virtio_init_vring() 47 vq->vq_desc_head_idx = 0; in virtio_init_vring() 48 vq->vq_avail_idx = 0; in virtio_init_vring() 49 vq->vq_desc_tail_idx = (uint16_t)(vq->vq_nentries - 1); in virtio_init_vring() 50 vq->vq_free_cnt = vq->vq_nentries; in virtio_init_vring() [all …]
|
H A D | virtio_vfio_user.c | 222 virtio_vfio_user_setup_queue(struct virtio_dev *vdev, struct virtqueue *vq) in virtio_vfio_user_setup_queue() argument 232 queue_mem = spdk_zmalloc(vq->vq_ring_size, VIRTIO_PCI_VRING_ALIGN, NULL, in virtio_vfio_user_setup_queue() 244 vq->vq_ring_mem = queue_mem_phys_addr; in virtio_vfio_user_setup_queue() 245 vq->vq_ring_virt_mem = queue_mem; in virtio_vfio_user_setup_queue() 247 desc_addr = vq->vq_ring_mem; in virtio_vfio_user_setup_queue() 248 avail_addr = desc_addr + vq->vq_nentries * sizeof(struct vring_desc); in virtio_vfio_user_setup_queue() 249 used_addr = (avail_addr + offsetof(struct vring_avail, ring[vq->vq_nentries]) in virtio_vfio_user_setup_queue() 254 offset, 2, &vq->vq_queue_index, true); in virtio_vfio_user_setup_queue() 327 SPDK_ERRLOG("Failed to enable queue %u\n", vq->vq_queue_index); in virtio_vfio_user_setup_queue() 331 SPDK_DEBUGLOG(virtio_vfio_user, "queue %"PRIu16" addresses:\n", vq in virtio_vfio_user_setup_queue() 343 virtio_vfio_user_del_queue(struct virtio_dev * vdev,struct virtqueue * vq) virtio_vfio_user_del_queue() argument 371 virtio_vfio_user_notify_queue(struct virtio_dev * vdev,struct virtqueue * vq) virtio_vfio_user_notify_queue() argument [all...] |
H A D | virtio_pci.c | 197 check_vq_phys_addr_ok(struct virtqueue *vq) in check_vq_phys_addr_ok() argument 203 if ((vq->vq_ring_mem + vq->vq_ring_size - 1) >> in check_vq_phys_addr_ok() 404 modern_setup_queue(struct virtio_dev *dev, struct virtqueue *vq) in modern_setup_queue() argument 416 if (vq->vq_ring_size > VALUE_2MB) { in modern_setup_queue() 420 queue_mem = spdk_zmalloc(vq->vq_ring_size, VALUE_2MB, NULL, in modern_setup_queue() 432 vq->vq_ring_mem = queue_mem_phys_addr; in modern_setup_queue() 433 vq->vq_ring_virt_mem = queue_mem; in modern_setup_queue() 435 if (!check_vq_phys_addr_ok(vq)) { in modern_setup_queue() 440 desc_addr = vq->vq_ring_mem; in modern_setup_queue() 441 avail_addr = desc_addr + vq->vq_nentries * sizeof(struct vring_desc); in modern_setup_queue() [all …]
|
H A D | virtio_vhost_user.c | 572 SPDK_ERRLOG("setup tx vq fails: %"PRIu32".\n", i); in virtio_user_queue_setup() 862 virtio_user_setup_queue(struct virtio_dev *vdev, struct virtqueue *vq) in virtio_user_setup_queue() argument 866 uint16_t queue_idx = vq->vq_queue_index; in virtio_user_setup_queue() 893 queue_mem = spdk_zmalloc(vq->vq_ring_size, VIRTIO_PCI_VRING_ALIGN, NULL, in virtio_user_setup_queue() 901 vq->vq_ring_mem = SPDK_VTOPHYS_ERROR; in virtio_user_setup_queue() 902 vq->vq_ring_virt_mem = queue_mem; in virtio_user_setup_queue() 904 state.index = vq->vq_queue_index; in virtio_user_setup_queue() 922 desc_addr = (uintptr_t)vq->vq_ring_virt_mem; in virtio_user_setup_queue() 923 avail_addr = desc_addr + vq->vq_nentries * sizeof(struct vring_desc); in virtio_user_setup_queue() 925 ring[vq in virtio_user_setup_queue() 937 virtio_user_del_queue(struct virtio_dev * vdev,struct virtqueue * vq) virtio_user_del_queue() argument 959 virtio_user_notify_queue(struct virtio_dev * vdev,struct virtqueue * vq) virtio_user_notify_queue() argument [all...] |
/spdk/module/vfu_device/ |
H A D | vfu_virtio.c | 62 virtio_dev_map_vq(struct vfu_virtio_dev *dev, struct vfu_virtio_vq *vq) in virtio_dev_map_vq() argument 67 if (!vq->enabled || (vq->q_state == VFU_VQ_ACTIVE)) { in virtio_dev_map_vq() 71 SPDK_DEBUGLOG(vfu_virtio, "%s: try to map vq %u\n", dev->name, vq->id); in virtio_dev_map_vq() 73 len = virtio_queue_desc_size(dev, vq); in virtio_dev_map_vq() 74 phys_addr = ((((uint64_t)vq->desc_hi) << 32) | vq->desc_lo); in virtio_dev_map_vq() 75 ret = vfu_virtio_map_q(dev, &vq->desc, phys_addr, len); in virtio_dev_map_vq() 81 len = virtio_queue_avail_size(dev, vq); in virtio_dev_map_vq() 82 phys_addr = ((((uint64_t)vq->avail_hi) << 32) | vq->avail_lo); in virtio_dev_map_vq() 83 ret = vfu_virtio_map_q(dev, &vq->avail, phys_addr, len); in virtio_dev_map_vq() 85 vfu_virtio_unmap_q(dev, &vq->desc); in virtio_dev_map_vq() [all …]
|
H A D | vfu_virtio_internal.h | 166 struct vfu_virtio_vq *vq); 167 void (*free_req)(struct vfu_virtio_endpoint *virtio_endpoint, struct vfu_virtio_vq *vq, 169 int (*exec_request)(struct vfu_virtio_endpoint *virtio_endpoint, struct vfu_virtio_vq *vq, 203 struct vfu_virtio_vq *vq; member 236 virtio_queue_desc_size(struct vfu_virtio_dev *dev, struct vfu_virtio_vq *vq) in virtio_queue_desc_size() argument 238 return sizeof(struct vring_desc) * vq->qsize; in virtio_queue_desc_size() 242 virtio_queue_avail_size(struct vfu_virtio_dev *dev, struct vfu_virtio_vq *vq) in virtio_queue_avail_size() argument 251 return (sizeof(struct vring_avail) + sizeof(uint16_t) * vq->qsize in virtio_queue_avail_size() 256 virtio_queue_used_size(struct vfu_virtio_dev *dev, struct vfu_virtio_vq *vq) in virtio_queue_used_size() argument 265 return (sizeof(struct vring_used) + sizeof(struct vring_used_elem) * vq in virtio_queue_used_size() 270 virtio_queue_event_is_suppressed(struct vfu_virtio_dev * dev,struct vfu_virtio_vq * vq) virtio_queue_event_is_suppressed() argument 354 vfu_virtio_vq_alloc_req(struct vfu_virtio_endpoint * endpoint,struct vfu_virtio_vq * vq) vfu_virtio_vq_alloc_req() argument 361 vfu_virtio_vq_free_req(struct vfu_virtio_endpoint * endpoint,struct vfu_virtio_vq * vq,struct vfu_virtio_req * req) vfu_virtio_vq_free_req() argument [all...] |
H A D | vfu_virtio_scsi.c | 89 struct vfu_virtio_vq *vq; in vfu_virtio_scsi_vring_poll() local 106 vq = &dev->vqs[i]; in vfu_virtio_scsi_vring_poll() 107 if (!vq->enabled || vq->q_state != VFU_VQ_ACTIVE) { in vfu_virtio_scsi_vring_poll() 111 vfu_virtio_vq_flush_irq(dev, vq); in vfu_virtio_scsi_vring_poll() 113 if (vq->packed.packed_ring) { in vfu_virtio_scsi_vring_poll() 115 count += vfu_virtio_dev_process_packed_ring(dev, vq); in vfu_virtio_scsi_vring_poll() 118 count += vfu_virtio_dev_process_split_ring(dev, vq); in vfu_virtio_scsi_vring_poll() 133 struct vfu_virtio_vq *vq; in vfu_virtio_scsi_eventq_enqueue() local 146 vq = &dev->vqs[1]; in vfu_virtio_scsi_eventq_enqueue() 147 if (!vq->enabled || vq->q_state != VFU_VQ_ACTIVE) { in vfu_virtio_scsi_eventq_enqueue() [all …]
|
H A D | vfu_virtio_blk.c | 71 struct vfu_virtio_vq *vq; in vfu_virtio_blk_vring_poll() local 83 vq = &dev->vqs[i]; in vfu_virtio_blk_vring_poll() 84 if (!vq->enabled || vq->q_state != VFU_VQ_ACTIVE) { in vfu_virtio_blk_vring_poll() 88 vfu_virtio_vq_flush_irq(dev, vq); in vfu_virtio_blk_vring_poll() 90 if (vq->packed.packed_ring) { in vfu_virtio_blk_vring_poll() 92 count += vfu_virtio_dev_process_packed_ring(dev, vq); in vfu_virtio_blk_vring_poll() 95 count += vfu_virtio_dev_process_split_ring(dev, vq); in vfu_virtio_blk_vring_poll() 170 virtio_blk_process_req(struct vfu_virtio_endpoint *virtio_endpoint, struct vfu_virtio_vq *vq, in virtio_blk_process_req() argument 458 virtio_blk_alloc_req(struct vfu_virtio_endpoint *virtio_endpoint, struct vfu_virtio_vq *vq) in virtio_blk_alloc_req() argument 471 virtio_blk_free_req(struct vfu_virtio_endpoint *virtio_endpoint, struct vfu_virtio_vq *vq, in virtio_blk_free_req() argument
|
/spdk/test/unit/lib/vhost/vhost.c/ |
H A D | vhost_ut.c | 468 struct spdk_vhost_virtqueue vq = {}; in vq_avail_ring_get_test() local 474 vq.vring.avail = (struct vring_avail *)avail_mem; in vq_avail_ring_get_test() 475 vq.vring.size = 32; in vq_avail_ring_get_test() 476 vq.last_avail_idx = 24; in vq_avail_ring_get_test() 477 vq.vring.avail->idx = 29; in vq_avail_ring_get_test() 481 vq.vring.avail->ring[i] = i; in vq_avail_ring_get_test() 484 ret = vhost_vq_avail_ring_get(&vq, reqs, reqs_len); in vq_avail_ring_get_test() 486 CU_ASSERT(vq.last_avail_idx == 29); in vq_avail_ring_get_test() 488 CU_ASSERT(reqs[i] == vq.vring.avail->ring[i + 24]); in vq_avail_ring_get_test() 492 vq in vq_avail_ring_get_test() 525 vq_desc_guest_is_used(struct spdk_vhost_virtqueue * vq,int16_t guest_last_used_idx,int16_t guest_used_phase) vq_desc_guest_is_used() argument 533 vq_desc_guest_set_avail(struct spdk_vhost_virtqueue * vq,int16_t * guest_last_avail_idx,int16_t * guest_avail_phase) vq_desc_guest_set_avail() argument 551 vq_desc_guest_handle_completed_desc(struct spdk_vhost_virtqueue * vq,int16_t * guest_last_used_idx,int16_t * guest_used_phase) vq_desc_guest_handle_completed_desc() argument 574 struct spdk_vhost_virtqueue *vq; vq_packed_ring_test() local [all...] |
/spdk/lib/vhost/ |
H A D | vhost_blk.c | 43 struct spdk_vhost_virtqueue *vq; member 155 if (task->vq->packed.packed_ring) { in blk_task_inc_task_cnt() 156 vhost_vq_packed_ring_enqueue(&task->bvsession->vsession, task->vq, in blk_task_inc_task_cnt() local 161 vhost_vq_used_ring_enqueue(&task->bvsession->vsession, task->vq, 200 struct spdk_vhost_virtqueue *vq, in blk_task_enqueue() 211 rc = vhost_vq_get_desc(vsession, vq, req_idx, &desc, &desc_table, &desc_table_size); in vhost_user_blk_request_finish() 273 struct spdk_vhost_virtqueue *vq, uint16_t req_idx, in blk_iovs_split_queue_setup() 282 desc = &vq->vring.desc_packed[req_idx]; in blk_iovs_split_queue_setup() 309 vhost_vring_packed_desc_get_next(&desc, &req_idx, vq, desc_table, desc_table_size); 332 struct spdk_vhost_virtqueue *vq, uint16_ in blk_iovs_packed_desc_setup() 67 struct spdk_vhost_virtqueue *vq; global() member 165 struct spdk_vhost_virtqueue *vq = task->vq; blk_task_dec_task_cnt() local 239 blk_iovs_split_queue_setup(struct spdk_vhost_blk_session * bvsession,struct spdk_vhost_virtqueue * vq,uint16_t req_idx,struct iovec * iovs,uint16_t * iovs_cnt,uint32_t * length) blk_iovs_split_queue_setup() argument 312 blk_iovs_packed_desc_setup(struct spdk_vhost_session * vsession,struct spdk_vhost_virtqueue * vq,uint16_t req_idx,struct vring_packed_desc * desc_table,uint16_t desc_table_size,struct iovec * iovs,uint16_t * iovs_cnt,uint32_t * length) blk_iovs_packed_desc_setup() argument 371 blk_iovs_packed_queue_setup(struct spdk_vhost_blk_session * bvsession,struct spdk_vhost_virtqueue * vq,uint16_t req_idx,struct iovec * iovs,uint16_t * iovs_cnt,uint32_t * length) blk_iovs_packed_queue_setup() argument 393 blk_iovs_inflight_queue_setup(struct spdk_vhost_blk_session * bvsession,struct spdk_vhost_virtqueue * vq,uint16_t req_idx,struct iovec * iovs,uint16_t * iovs_cnt,uint32_t * length) blk_iovs_inflight_queue_setup() argument 688 process_blk_task(struct spdk_vhost_virtqueue * vq,uint16_t req_idx) process_blk_task() argument 729 process_packed_blk_task(struct spdk_vhost_virtqueue * vq,uint16_t req_idx) process_packed_blk_task() argument 794 process_packed_inflight_blk_task(struct spdk_vhost_virtqueue * vq,uint16_t req_idx) process_packed_inflight_blk_task() argument 856 submit_inflight_desc(struct spdk_vhost_blk_session * bvsession,struct spdk_vhost_virtqueue * vq) submit_inflight_desc() argument 897 process_vq(struct spdk_vhost_blk_session * bvsession,struct spdk_vhost_virtqueue * vq) process_vq() argument 931 process_packed_vq(struct spdk_vhost_blk_session * bvsession,struct spdk_vhost_virtqueue * vq) process_packed_vq() argument 951 _vdev_vq_worker(struct spdk_vhost_virtqueue * vq) _vdev_vq_worker() argument 974 struct spdk_vhost_virtqueue *vq = arg; vdev_vq_worker() local 984 struct spdk_vhost_virtqueue *vq; vdev_worker() local 997 no_bdev_process_vq(struct spdk_vhost_blk_session * bvsession,struct spdk_vhost_virtqueue * vq) no_bdev_process_vq() argument 1018 no_bdev_process_packed_vq(struct spdk_vhost_blk_session * bvsession,struct spdk_vhost_virtqueue * vq) no_bdev_process_packed_vq() argument 1061 _no_bdev_vdev_vq_worker(struct spdk_vhost_virtqueue * vq) _no_bdev_vdev_vq_worker() argument 1089 struct spdk_vhost_virtqueue *vq = arg; no_bdev_vdev_vq_worker() local 1112 struct spdk_vhost_virtqueue *vq; vhost_blk_pg_unregister_interrupts() local 1127 vhost_blk_vq_register_interrupt(struct spdk_vhost_virtqueue * vq) vhost_blk_vq_register_interrupt() argument 1187 vhost_blk_vq_enable(struct spdk_vhost_session * vsession,struct spdk_vhost_virtqueue * vq) vhost_blk_vq_enable() argument 1226 struct spdk_vhost_virtqueue *vq; vhost_blk_pg_register_no_bdev_interrupts() local 1391 struct spdk_vhost_virtqueue *vq; free_task_pool() local 1409 struct spdk_vhost_virtqueue *vq; alloc_vq_task_pool() local [all...] |
H A D | vhost_scsi.c | 112 struct spdk_vhost_virtqueue *vq; member 277 struct spdk_vhost_virtqueue *vq; in eventq_enqueue() local 285 vq = &vsession->virtqueue[VIRTIO_SCSI_EVENTQ]; in eventq_enqueue() 287 if (vq->vring.desc == NULL || vhost_vq_avail_ring_get(vq, &req, 1) != 1) { in eventq_enqueue() 293 rc = vhost_vq_get_desc(vsession, vq, req, &desc, &desc_table, &desc_table_size); in eventq_enqueue() 324 vhost_vq_used_ring_enqueue(vsession, vq, req, req_size); in eventq_enqueue() 332 vhost_vq_used_ring_enqueue(vsession, task->vq, task->req_idx, in submit_completion() 389 vhost_vq_used_ring_enqueue(vsession, task->vq, task->req_idx, in invalid_request() 436 rc = vhost_vq_get_desc(vsession, task->vq, tas in process_ctrl_request() 694 process_scsi_task(struct spdk_vhost_session * vsession,struct spdk_vhost_virtqueue * vq,uint16_t req_idx) process_scsi_task() argument 733 submit_inflight_desc(struct spdk_vhost_scsi_session * svsession,struct spdk_vhost_virtqueue * vq) submit_inflight_desc() argument 770 process_vq(struct spdk_vhost_scsi_session * svsession,struct spdk_vhost_virtqueue * vq) process_vq() argument 1351 struct spdk_vhost_virtqueue *vq; free_task_pool() local 1369 struct spdk_vhost_virtqueue *vq; alloc_vq_task_pool() local [all...] |
H A D | vhost_internal.h | 254 int (*enable_vq)(struct spdk_vhost_session *vsession, struct spdk_vhost_virtqueue *vq); 280 uint16_t vhost_vq_avail_ring_get(struct spdk_vhost_virtqueue *vq, uint16_t *reqs, 289 * \param vq virtqueue 300 int vhost_vq_get_desc(struct spdk_vhost_session *vsession, struct spdk_vhost_virtqueue *vq, 310 * \param vq virtqueue 331 * Send IRQ/call client (if pending) for \c vq. 333 * \param vq virtqueue 338 int vhost_vq_used_signal(struct spdk_vhost_session *vsession, struct spdk_vhost_virtqueue *vq); 342 * \param vq virtqueue 347 struct spdk_vhost_virtqueue *vq, [all...] |
H A D | rte_vhost_user.c | 176 /* Check whether there are unprocessed reqs in vq, then kick vq manually */ in vhost_vq_avail_ring_get() 383 vhost_vq_event_is_suppressed(struct spdk_vhost_virtqueue *vq) argument 387 if (spdk_unlikely(vq->packed.packed_ring)) { 388 if (vq->vring.driver_event->flags & VRING_PACKED_EVENT_FLAG_DISABLE) { 392 if (vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT) { 578 struct spdk_vhost_virtqueue *vq, argument 604 *req_idx = (*req_idx + 1) % vq->vring.size; 605 *desc = &vq->vring.desc_packed[*req_idx]; 656 * 2, Update the vq 660 vhost_vring_packed_desc_get_buffer_id(struct spdk_vhost_virtqueue * vq,uint16_t req_idx,uint16_t * num_descs) global() argument [all...] |
/spdk/include/spdk_internal/ |
H A D | virtio.h | 93 int (*setup_queue)(struct virtio_dev *hw, struct virtqueue *vq); 94 void (*del_queue)(struct virtio_dev *hw, struct virtqueue *vq); 95 void (*notify_queue)(struct virtio_dev *hw, struct virtqueue *vq); 166 uint16_t virtio_recv_pkts(struct virtqueue *vq, void **io, uint32_t *len, uint16_t io_cnt); 187 int virtqueue_req_start(struct virtqueue *vq, void *cookie, int iovcnt); 195 void virtqueue_req_flush(struct virtqueue *vq); 205 void virtqueue_req_abort(struct virtqueue *vq); 218 void virtqueue_req_add_iovs(struct virtqueue *vq, struct iovec *iovs, uint16_t iovcnt,
|
/spdk/module/bdev/virtio/ |
H A D | bdev_virtio_blk.c | 47 struct virtqueue *vq; member 116 struct virtqueue *vq = virtio_channel->vq; in bdev_virtio_blk_send_io() local 120 rc = virtqueue_req_start(vq, bdev_io, bdev_io->u.bdev.iovcnt + 2); in bdev_virtio_blk_send_io() 129 virtqueue_req_add_iovs(vq, &io_ctx->iov_req, 1, SPDK_VIRTIO_DESC_RO); in bdev_virtio_blk_send_io() 131 virtqueue_req_add_iovs(vq, &io_ctx->iov_unmap, 1, SPDK_VIRTIO_DESC_RO); in bdev_virtio_blk_send_io() 133 virtqueue_req_add_iovs(vq, bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt, in bdev_virtio_blk_send_io() 137 virtqueue_req_add_iovs(vq, &io_ctx->iov_resp, 1, SPDK_VIRTIO_DESC_WR); in bdev_virtio_blk_send_io() 139 virtqueue_req_flush(vq); in bdev_virtio_blk_send_io() 333 cnt = virtio_recv_pkts(ch->vq, io, io_len, SPDK_COUNTOF(io)); in bdev_virtio_poll() 347 struct virtqueue *vq; in bdev_virtio_blk_ch_create_cb() local [all …]
|
H A D | bdev_virtio_scsi.c | 151 struct virtqueue *vq; member 180 virtio_scsi_dev_send_eventq_io(struct virtqueue *vq, struct virtio_scsi_eventq_io *io) in virtio_scsi_dev_send_eventq_io() argument 184 rc = virtqueue_req_start(vq, io, 1); in virtio_scsi_dev_send_eventq_io() 189 virtqueue_req_add_iovs(vq, &io->iov, 1, SPDK_VIRTIO_DESC_WR); in virtio_scsi_dev_send_eventq_io() 190 virtqueue_req_flush(vq); in virtio_scsi_dev_send_eventq_io() 489 struct virtqueue *vq = virtio_channel->vq; in bdev_virtio_send_io() local 493 rc = virtqueue_req_start(vq, bdev_io, bdev_io->u.bdev.iovcnt + 2); in bdev_virtio_send_io() 502 virtqueue_req_add_iovs(vq, &io_ctx->iov_req, 1, SPDK_VIRTIO_DESC_RO); in bdev_virtio_send_io() 504 virtqueue_req_add_iovs(vq, in bdev_virtio_send_io() 988 struct virtqueue *vq; bdev_virtio_scsi_ch_create_cb() local 1013 struct virtqueue *vq = ch->vq; bdev_virtio_scsi_ch_destroy_cb() local 1058 struct virtqueue *vq = base->channel->vq; send_scan_io() local [all...] |
/spdk/test/vhost/initiator/ |
H A D | blockdev.sh | 63 …o_attach_controller --trtype user --traddr 'naa.Nvme0n1_scsi0.0' -d scsi --vq-count 8 'VirtioScsi0' 64 …rtio_attach_controller --trtype user --traddr 'naa.Nvme0n1_blk0.0' -d blk --vq-count 8 'VirtioBlk3' 65 …rtio_attach_controller --trtype user --traddr 'naa.Nvme0n1_blk1.0' -d blk --vq-count 8 'VirtioBlk4' 67 …_virtio_attach_controller --trtype user --traddr 'naa.Malloc0.0' -d scsi --vq-count 8 'VirtioScsi1' 68 …_virtio_attach_controller --trtype user --traddr 'naa.Malloc1.0' -d scsi --vq-count 8 'VirtioScsi2'
|
/spdk/test/app/fuzz/vhost_fuzz/ |
H A D | vhost_fuzz.c | 787 submit_virtio_req_rsp_pair(struct fuzz_vhost_dev_ctx *dev_ctx, struct virtqueue *vq, in submit_virtio_req_rsp_pair() argument 795 rc = virtqueue_req_start(vq, io_ctx, num_iovs); in submit_virtio_req_rsp_pair() 799 virtqueue_req_add_iovs(vq, &iovs->iov_req, 1, SPDK_VIRTIO_DESC_RO); in submit_virtio_req_rsp_pair() 803 virtqueue_req_add_iovs(vq, &iovs->iov_data, 1, SPDK_VIRTIO_DESC_WR); in submit_virtio_req_rsp_pair() 805 virtqueue_req_add_iovs(vq, &iovs->iov_resp, 1, SPDK_VIRTIO_DESC_WR); in submit_virtio_req_rsp_pair() 807 virtqueue_req_add_iovs(vq, &iovs->iov_resp, 1, SPDK_VIRTIO_DESC_WR); in submit_virtio_req_rsp_pair() 809 virtqueue_req_add_iovs(vq, &iovs->iov_data, 1, SPDK_VIRTIO_DESC_WR); in submit_virtio_req_rsp_pair() 812 virtqueue_req_flush(vq); in submit_virtio_req_rsp_pair() 817 dev_submit_requests(struct fuzz_vhost_dev_ctx *dev_ctx, struct virtqueue *vq, in dev_submit_requests() argument 826 rc = submit_virtio_req_rsp_pair(dev_ctx, vq, io_ctx); in dev_submit_requests() [all …]
|