/qemu/util/ |
H A D | iov.c | 278 qiov->niov = 0; in qemu_iovec_init() 280 qiov->size = 0; in qemu_iovec_init() 290 qiov->size = 0; in qemu_iovec_init_external() 299 if (qiov->niov == qiov->nalloc) { in qemu_iovec_add() 300 qiov->nalloc = 2 * qiov->nalloc + 1; in qemu_iovec_add() 301 qiov->iov = g_renew(struct iovec, qiov->iov, qiov->nalloc); in qemu_iovec_add() 303 qiov->iov[qiov->niov].iov_base = base; in qemu_iovec_add() 304 qiov->iov[qiov->niov].iov_len = len; in qemu_iovec_add() 306 ++qiov->niov; in qemu_iovec_add() 473 memset(qiov, 0, sizeof(*qiov)); in qemu_iovec_destroy() [all …]
|
/qemu/include/qemu/ |
H A D | iov.h | 209 static inline void qemu_iovec_init_buf(QEMUIOVector *qiov, in qemu_iovec_init_buf() argument 212 *qiov = (QEMUIOVector) QEMU_IOVEC_INIT_BUF(*qiov, buf, len); in qemu_iovec_init_buf() 215 static inline void *qemu_iovec_buf(QEMUIOVector *qiov) in qemu_iovec_buf() argument 218 assert(qiov->nalloc == -1 && qiov->iov == &qiov->local_iov); in qemu_iovec_buf() 220 return qiov->local_iov.iov_base; in qemu_iovec_buf() 223 void qemu_iovec_init(QEMUIOVector *qiov, int alloc_hint); 227 struct iovec *qemu_iovec_slice(QEMUIOVector *qiov, 238 void qemu_iovec_destroy(QEMUIOVector *qiov); 239 void qemu_iovec_reset(QEMUIOVector *qiov); 240 size_t qemu_iovec_to_buf(QEMUIOVector *qiov, size_t offset, [all …]
|
/qemu/block/ |
H A D | win32-aio.c | 53 QEMUIOVector *qiov; member 75 qemu_iovec_memset(waiocb->qiov, count, 0, in win32_aio_process_completion() 76 waiocb->qiov->size - count); in win32_aio_process_completion() 85 QEMUIOVector *qiov = waiocb->qiov; in win32_aio_process_completion() local 86 iov_from_buf(qiov->iov, qiov->niov, 0, waiocb->buf, qiov->size); in win32_aio_process_completion() 116 uint64_t offset, uint64_t bytes, QEMUIOVector *qiov, in win32_aio_submit() argument 124 waiocb->qiov = qiov; in win32_aio_submit() 127 if (qiov->niov > 1) { in win32_aio_submit() 128 waiocb->buf = qemu_try_blockalign(bs, qiov->size); in win32_aio_submit() 133 iov_to_buf(qiov->iov, qiov->niov, 0, waiocb->buf, qiov->size); in win32_aio_submit() [all …]
|
H A D | io_uring.c | 33 QEMUIOVector *qiov; member 91 remaining = luringcb->qiov->size - luringcb->total_read; in luring_resubmit_short_read() 96 qemu_iovec_init(resubmit_qiov, luringcb->qiov->niov); in luring_resubmit_short_read() 187 } else if (!luringcb->qiov) { in luring_process_completions() 189 } else if (total_bytes == luringcb->qiov->size) { in luring_process_completions() 345 io_uring_prep_writev(sqes, fd, luringcb->qiov->iov, in luring_do_submit() 346 luringcb->qiov->niov, offset); in luring_do_submit() 353 io_uring_prep_readv(sqes, fd, luringcb->qiov->iov, in luring_do_submit() 354 luringcb->qiov->niov, offset); in luring_do_submit() 391 .qiov = qiov, in luring_co_submit() [all …]
|
H A D | blklogwrites.c | 346 QEMUIOVector *qiov; member 353 QEMUIOVector *qiov; member 392 lr->qiov, 0); in blk_log_writes_co_do_log() 413 QEMUIOVector qiov; in blk_log_writes_co_do_log() local 442 qemu_iovec_init(&qiov, 2); in blk_log_writes_co_do_log() 458 qemu_iovec_destroy(&qiov); in blk_log_writes_co_do_log() 476 size_t niov = qiov ? qiov->niov : 0; in blk_log_writes_co_log() 483 .qiov = qiov, in blk_log_writes_co_log() 488 .qiov = &log_qiov, in blk_log_writes_co_log() 507 if (qiov) { in blk_log_writes_co_log() [all …]
|
H A D | blkverify.c | 44 QEMUIOVector *qiov; /* user I/O vector */ member 174 r->ret = r->request_fn(s->test_file, r->offset, r->bytes, r->qiov, in blkverify_do_test_req() 207 .qiov = qiov, in blkverify_co_prwv() 233 QEMUIOVector *qiov, BdrvRequestFlags flags) in blkverify_co_preadv() argument 241 buf = qemu_blockalign(bs->file->bs, qiov->size); in blkverify_co_preadv() 242 qemu_iovec_init(&raw_qiov, qiov->niov); in blkverify_co_preadv() 243 qemu_iovec_clone(&raw_qiov, qiov, buf); in blkverify_co_preadv() 245 ret = blkverify_co_prwv(bs, &r, offset, bytes, qiov, &raw_qiov, in blkverify_co_preadv() 248 cmp_offset = qemu_iovec_compare(qiov, &raw_qiov); in blkverify_co_preadv() 262 QEMUIOVector *qiov, BdrvRequestFlags flags) in blkverify_co_pwritev() argument [all …]
|
H A D | linux-aio.c | 45 QEMUIOVector *qiov; member 91 qemu_iovec_memset(laiocb->qiov, ret, 0, in qemu_laio_process_completion() 92 laiocb->qiov->size - ret); in qemu_laio_process_completion() 375 QEMUIOVector *qiov = laiocb->qiov; in laio_do_submit() local 379 io_prep_pwritev(iocbs, fd, qiov->iov, qiov->niov, offset); in laio_do_submit() 382 io_prep_pwritev(iocbs, fd, qiov->iov, qiov->niov, offset); in laio_do_submit() 385 io_prep_preadv(iocbs, fd, qiov->iov, qiov->niov, offset); in laio_do_submit() 408 int coroutine_fn laio_co_submit(int fd, uint64_t offset, QEMUIOVector *qiov, in laio_co_submit() argument 415 .nbytes = qiov->size, in laio_co_submit() 419 .qiov = qiov, in laio_co_submit()
|
H A D | io.c | 848 if (!qiov) { in bdrv_check_qiov_request() 998 qiov = &local_qiov; in bdrv_driver_preadv() 1035 if (qiov == &local_qiov) { in bdrv_driver_preadv() 1077 qiov = &local_qiov; in bdrv_driver_pwritev() 1733 if (*qiov) { in bdrv_pad_request() 1836 QEMUIOVector qiov; in bdrv_co_do_pwrite_zeroes() local 2837 ret = bdrv_check_qiov_request(pos, qiov->size, qiov, 0, NULL); in bdrv_co_readv_vmstate() 2870 ret = bdrv_check_qiov_request(pos, qiov->size, qiov, 0, NULL); in bdrv_co_writev_vmstate() 2897 QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, size); in bdrv_save_vmstate() local 2907 QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, size); in bdrv_load_vmstate() local [all …]
|
H A D | quorum.c | 106 QEMUIOVector qiov; member 126 QEMUIOVector *qiov; /* calling IOV */ member 179 .qiov = qiov, in quorum_aio_get() 389 QEMUIOVector *qiov = &acb->qcrs[i].qiov; in quorum_compute_hash() local 397 qiov->iov, qiov->niov, in quorum_compute_hash() 526 quorum = quorum_compare(acb, &acb->qcrs[i].qiov, &acb->qcrs[j].qiov); in quorum_vote() 534 quorum_copy_qiov(acb->qiov, &acb->qcrs[i].qiov); in quorum_vote() 563 quorum_copy_qiov(acb->qiov, &acb->qcrs[winner->index].qiov); in quorum_vote() 618 qemu_iovec_init(&acb->qcrs[i].qiov, acb->qiov->niov); in read_quorum_children() 619 qemu_iovec_clone(&acb->qcrs[i].qiov, acb->qiov, acb->qcrs[i].buf); in read_quorum_children() [all …]
|
H A D | nvme.c | 1043 s->dma_map_count -= qiov->size; in nvme_cmd_unmap_qiov() 1063 assert(qiov->size); in nvme_cmd_map_qiov() 1066 for (i = 0; i < qiov->niov; ++i) { in nvme_cmd_map_qiov() 1124 s->dma_map_count += qiov->size; in nvme_cmd_map_qiov() 1214 r = nvme_cmd_map_qiov(bs, &cmd, req, qiov); in nvme_co_prw_aligned() 1228 r = nvme_cmd_unmap_qiov(bs, qiov); in nvme_co_prw_aligned() 1244 for (i = 0; i < qiov->niov; ++i) { in nvme_qiov_aligned() 1248 trace_nvme_qiov_unaligned(qiov, i, qiov->iov[i].iov_base, in nvme_qiov_aligned() 1269 if (nvme_qiov_aligned(bs, qiov)) { in nvme_co_prw() 1282 qemu_iovec_to_buf(qiov, 0, buf, bytes); in nvme_co_prw() [all …]
|
H A D | copy-on-read.c | 136 QEMUIOVector *qiov, size_t qiov_offset, in cor_co_preadv_part() argument 145 return bdrv_co_preadv_part(bs->file, offset, bytes, qiov, qiov_offset, in cor_co_preadv_part() 170 ret = bdrv_co_preadv_part(bs->file, offset, n, qiov, qiov_offset, in cor_co_preadv_part() 188 QEMUIOVector *qiov, size_t qiov_offset, in cor_co_pwritev_part() argument 191 return bdrv_co_pwritev_part(bs->file, offset, bytes, qiov, qiov_offset, in cor_co_pwritev_part() 213 QEMUIOVector *qiov) in cor_co_pwritev_compressed() argument 215 return bdrv_co_pwritev(bs->file, offset, bytes, qiov, in cor_co_pwritev_compressed()
|
H A D | qed.c | 895 return bdrv_co_preadv(s->bs->backing, pos, qiov->size, qiov, 0); in qed_read_backing_file() 897 qemu_iovec_memset(qiov, 0, 0, qiov->size); in qed_read_backing_file() 913 QEMUIOVector qiov; in qed_copy_from_backing_file() local 923 ret = qed_read_backing_file(s, pos, &qiov); in qed_copy_from_backing_file() 930 ret = bdrv_co_pwritev(s->bs->file, offset, qiov.size, &qiov, 0); in qed_copy_from_backing_file() 936 qemu_vfree(qemu_iovec_buf(&qiov)); in qed_copy_from_backing_file() 980 acb->qiov->iov[0].iov_base = NULL; in qed_aio_complete() 1243 struct iovec *iov = acb->qiov->iov; in qed_aio_write_inplace() 1400 .qiov = qiov, in qed_co_request() 1413 QEMUIOVector *qiov) in bdrv_qed_co_readv() argument [all …]
|
H A D | block-backend.c | 1356 QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); in blk_co_pread() local 1449 QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); in blk_co_pwrite() local 1605 QEMUIOVector *qiov = rwco->iobuf; in blk_aio_read_entry() local 1607 assert(qiov->size == acb->bytes); in blk_aio_read_entry() 1617 QEMUIOVector *qiov = rwco->iobuf; in blk_aio_write_entry() local 1619 assert(!qiov || qiov->size == acb->bytes); in blk_aio_write_entry() 1700 assert((uint64_t)qiov->size <= INT64_MAX); in blk_aio_preadv() 1701 return blk_aio_prwv(blk, offset, qiov->size, qiov, in blk_aio_preadv() 1711 return blk_aio_prwv(blk, offset, qiov->size, qiov, in blk_aio_pwritev() 1971 .iobuf = qiov, in blk_aio_zone_append() [all …]
|
H A D | nbd.c | 493 QEMUIOVector *qiov) in nbd_co_send_request() argument 534 if (qiov) { in nbd_co_send_request() 537 if (rc >= 0 && qio_channel_writev_all(s->ioc, qiov->iov, qiov->niov, in nbd_co_send_request() 792 qemu_iovec_init(&sub_qiov, qiov->niov); in nbd_co_receive_offset_data_payload() 883 if (*request_ret < 0 || !qiov) { in nbd_co_do_receive_one_chunk() 887 return qio_channel_readv_all(s->ioc, qiov->iov, qiov->niov, in nbd_co_do_receive_one_chunk() 910 if (!qiov) { in nbd_co_do_receive_one_chunk() 1001 qiov, reply, payload) \ argument 1098 qiov, &reply, &payload) in nbd_co_receive_cmdread_reply() 1270 qemu_iovec_memset(qiov, 0, 0, bytes); in nbd_client_co_preadv() [all …]
|
H A D | raw-format.c | 211 QEMUIOVector *qiov, BdrvRequestFlags flags) in raw_co_preadv() argument 221 return bdrv_co_preadv(bs->file, offset, bytes, qiov, flags); in raw_co_preadv() 226 QEMUIOVector *qiov, BdrvRequestFlags flags) in raw_co_pwritev() argument 247 ret = qemu_iovec_to_buf(qiov, 0, buf, 512); in raw_co_pwritev() 261 qemu_iovec_init(&local_qiov, qiov->niov + 1); in raw_co_pwritev() 263 qemu_iovec_concat(&local_qiov, qiov, 512, qiov->size - 512); in raw_co_pwritev() 264 qiov = &local_qiov; in raw_co_pwritev() 275 ret = bdrv_co_pwritev(bs->file, offset, bytes, qiov, flags); in raw_co_pwritev() 278 if (qiov == &local_qiov) { in raw_co_pwritev() 338 raw_co_zone_append(BlockDriverState *bs,int64_t *offset, QEMUIOVector *qiov, in raw_co_zone_append() argument [all …]
|
H A D | throttle.c | 120 QEMUIOVector *qiov, BdrvRequestFlags flags) in throttle_co_preadv() argument 126 return bdrv_co_preadv(bs->file, offset, bytes, qiov, flags); in throttle_co_preadv() 131 QEMUIOVector *qiov, BdrvRequestFlags flags) in throttle_co_pwritev() argument 136 return bdrv_co_pwritev(bs->file, offset, bytes, qiov, flags); in throttle_co_pwritev() 160 int64_t bytes, QEMUIOVector *qiov) in throttle_co_pwritev_compressed() argument 162 return throttle_co_pwritev(bs, offset, bytes, qiov, in throttle_co_pwritev_compressed()
|
H A D | filter-compress.c | 69 QEMUIOVector *qiov, size_t qiov_offset, in compress_co_preadv_part() argument 72 return bdrv_co_preadv_part(bs->file, offset, bytes, qiov, qiov_offset, in compress_co_preadv_part() 79 QEMUIOVector *qiov, size_t qiov_offset, in compress_co_pwritev_part() argument 82 return bdrv_co_pwritev_part(bs->file, offset, bytes, qiov, qiov_offset, in compress_co_pwritev_part()
|
/qemu/migration/ |
H A D | channel-block.c | 60 QEMUIOVector qiov; in qio_channel_block_readv() local 63 qemu_iovec_init_external(&qiov, (struct iovec *)iov, niov); in qio_channel_block_readv() 64 ret = bdrv_readv_vmstate(bioc->bs, &qiov, bioc->offset); in qio_channel_block_readv() 70 bioc->offset += qiov.size; in qio_channel_block_readv() 71 return qiov.size; in qio_channel_block_readv() 85 QEMUIOVector qiov; in qio_channel_block_writev() local 88 qemu_iovec_init_external(&qiov, (struct iovec *)iov, niov); in qio_channel_block_writev() 89 ret = bdrv_writev_vmstate(bioc->bs, &qiov, bioc->offset); in qio_channel_block_writev() 95 bioc->offset += qiov.size; in qio_channel_block_writev() 96 return qiov.size; in qio_channel_block_writev()
|
/qemu/include/block/ |
H A D | block_int-io.h | 39 int64_t offset, int64_t bytes, QEMUIOVector *qiov, size_t qiov_offset); 48 int64_t offset, int64_t bytes, QEMUIOVector *qiov, 52 QEMUIOVector *qiov, size_t qiov_offset, BdrvRequestFlags flags); 54 int64_t offset, int64_t bytes, QEMUIOVector *qiov, 58 QEMUIOVector *qiov, size_t qiov_offset, BdrvRequestFlags flags); 63 QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); in bdrv_co_pread() local 67 return bdrv_co_preadv(child, offset, bytes, &qiov, flags); in bdrv_co_pread() 73 QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); in bdrv_co_pwrite() local 77 return bdrv_co_pwritev(child, offset, bytes, &qiov, flags); in bdrv_co_pwrite()
|
H A D | block_int-common.h | 502 int64_t offset, int64_t bytes, QEMUIOVector *qiov, 506 int64_t offset, int64_t bytes, QEMUIOVector *qiov, 535 int64_t offset, int64_t bytes, QEMUIOVector *qiov, 540 QEMUIOVector *qiov, size_t qiov_offset, 544 int64_t sector_num, int nb_sectors, QEMUIOVector *qiov, 656 QEMUIOVector *qiov, size_t qiov_offset); 725 QEMUIOVector *qiov); 729 QEMUIOVector *qiov, size_t qiov_offset); 739 BlockDriverState *bs, QEMUIOVector *qiov, int64_t pos); 742 BlockDriverState *bs, QEMUIOVector *qiov, int64_t pos); [all …]
|
/qemu/include/sysemu/ |
H A D | block-backend-io.h | 42 QEMUIOVector *qiov, BdrvRequestFlags flags, 45 QEMUIOVector *qiov, BdrvRequestFlags flags, 57 QEMUIOVector *qiov, BdrvRequestFlags flags, 145 int64_t bytes, QEMUIOVector *qiov, 148 int64_t bytes, QEMUIOVector *qiov, 152 int64_t bytes, QEMUIOVector *qiov, 156 int64_t bytes, QEMUIOVector *qiov, 166 int64_t bytes, QEMUIOVector *qiov, 169 int64_t bytes, QEMUIOVector *qiov, 204 QEMUIOVector *qiov, [all …]
|
/qemu/ |
H A D | qemu-io-cmds.c | 654 *total = qiov->size; in do_aio_readv() 668 *total = qiov->size; in do_aio_writev() 915 QEMUIOVector qiov; in readv_f() local 1004 qemu_iovec_destroy(&qiov); in readv_f() 1273 QEMUIOVector qiov; in writev_f() local 1341 qemu_iovec_destroy(&qiov); in writev_f() 1347 QEMUIOVector qiov; member 1682 ctx->qiov.size = count; in aio_write_f() 1887 *total = qiov->size; in do_aio_zone_append() 1901 QEMUIOVector qiov; in zone_append_f() local [all …]
|
/qemu/block/export/ |
H A D | virtio-blk-handler.c | 173 QEMUIOVector qiov; in virtio_blk_process_req() local 185 qemu_iovec_init_external(&qiov, out_iov, out_num); in virtio_blk_process_req() 187 qemu_iovec_init_external(&qiov, in_iov, in_num); in virtio_blk_process_req() 192 sector_num, qiov.size))) { in virtio_blk_process_req() 200 ret = blk_co_pwritev(blk, offset, qiov.size, &qiov, 0); in virtio_blk_process_req() 202 ret = blk_co_preadv(blk, offset, qiov.size, &qiov, 0); in virtio_blk_process_req()
|
/qemu/tests/unit/ |
H A D | test-replication.c | 57 QEMUIOVector qiov; in test_blk_read() local 73 qemu_iovec_init(&qiov, 1); in test_blk_read() 74 qemu_iovec_add(&qiov, pattern_buf, count); in test_blk_read() 76 blk_aio_preadv(blk, offset, &qiov, 0, blk_rw_done, &async_ret); in test_blk_read() 93 qemu_iovec_destroy(&qiov); in test_blk_read() 100 QEMUIOVector qiov; in test_blk_write() local 110 qemu_iovec_init(&qiov, 1); in test_blk_write() 111 qemu_iovec_add(&qiov, pattern_buf, count); in test_blk_write() 113 blk_aio_pwritev(blk, offset, &qiov, 0, blk_rw_done, &async_ret); in test_blk_write() 125 qemu_iovec_destroy(&qiov); in test_blk_write()
|
H A D | test-block-iothread.c | 37 QEMUIOVector *qiov, in bdrv_test_co_preadv() argument 145 QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, sizeof(buf)); in test_sync_op_blk_preadv() local 149 ret = blk_preadv(blk, 0, sizeof(buf), &qiov, 0); in test_sync_op_blk_preadv() 153 ret = blk_preadv(blk, -2, sizeof(buf), &qiov, 0); in test_sync_op_blk_preadv() 160 QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, sizeof(buf)); in test_sync_op_blk_pwritev() local 164 ret = blk_pwritev(blk, 0, sizeof(buf), &qiov, 0); in test_sync_op_blk_pwritev() 168 ret = blk_pwritev(blk, -2, sizeof(buf), &qiov, 0); in test_sync_op_blk_pwritev() 175 QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, sizeof(buf)); in test_sync_op_blk_preadv_part() local 179 ret = blk_preadv_part(blk, 0, sizeof(buf), &qiov, 0, 0); in test_sync_op_blk_preadv_part() 183 ret = blk_preadv_part(blk, -2, sizeof(buf), &qiov, 0, 0); in test_sync_op_blk_preadv_part() [all …]
|