block: introduce byte-based io helpers
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
e1f4a37a49
commit
371420e217
@ -925,6 +925,22 @@ int coroutine_fn bdrv_co_pwritev(BdrvChild *child,
|
|||||||
int64_t offset, unsigned int bytes, QEMUIOVector *qiov,
|
int64_t offset, unsigned int bytes, QEMUIOVector *qiov,
|
||||||
BdrvRequestFlags flags);
|
BdrvRequestFlags flags);
|
||||||
|
|
||||||
|
static inline int coroutine_fn bdrv_co_pread(BdrvChild *child,
|
||||||
|
int64_t offset, unsigned int bytes, void *buf, BdrvRequestFlags flags)
|
||||||
|
{
|
||||||
|
QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes);
|
||||||
|
|
||||||
|
return bdrv_co_preadv(child, offset, bytes, &qiov, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int coroutine_fn bdrv_co_pwrite(BdrvChild *child,
|
||||||
|
int64_t offset, unsigned int bytes, void *buf, BdrvRequestFlags flags)
|
||||||
|
{
|
||||||
|
QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes);
|
||||||
|
|
||||||
|
return bdrv_co_pwritev(child, offset, bytes, &qiov, flags);
|
||||||
|
}
|
||||||
|
|
||||||
extern unsigned int bdrv_drain_all_count;
|
extern unsigned int bdrv_drain_all_count;
|
||||||
void bdrv_apply_subtree_drain(BdrvChild *child, BlockDriverState *new_parent);
|
void bdrv_apply_subtree_drain(BdrvChild *child, BlockDriverState *new_parent);
|
||||||
void bdrv_unapply_subtree_drain(BdrvChild *child, BlockDriverState *old_parent);
|
void bdrv_unapply_subtree_drain(BdrvChild *child, BlockDriverState *old_parent);
|
||||||
|
@ -124,6 +124,25 @@ int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset,
|
|||||||
int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t offset,
|
int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t offset,
|
||||||
unsigned int bytes, QEMUIOVector *qiov,
|
unsigned int bytes, QEMUIOVector *qiov,
|
||||||
BdrvRequestFlags flags);
|
BdrvRequestFlags flags);
|
||||||
|
|
||||||
|
static inline int coroutine_fn blk_co_pread(BlockBackend *blk, int64_t offset,
|
||||||
|
unsigned int bytes, void *buf,
|
||||||
|
BdrvRequestFlags flags)
|
||||||
|
{
|
||||||
|
QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes);
|
||||||
|
|
||||||
|
return blk_co_preadv(blk, offset, bytes, &qiov, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int coroutine_fn blk_co_pwrite(BlockBackend *blk, int64_t offset,
|
||||||
|
unsigned int bytes, void *buf,
|
||||||
|
BdrvRequestFlags flags)
|
||||||
|
{
|
||||||
|
QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes);
|
||||||
|
|
||||||
|
return blk_co_pwritev(blk, offset, bytes, &qiov, flags);
|
||||||
|
}
|
||||||
|
|
||||||
int blk_pwrite_zeroes(BlockBackend *blk, int64_t offset,
|
int blk_pwrite_zeroes(BlockBackend *blk, int64_t offset,
|
||||||
int bytes, BdrvRequestFlags flags);
|
int bytes, BdrvRequestFlags flags);
|
||||||
BlockAIOCB *blk_aio_pwrite_zeroes(BlockBackend *blk, int64_t offset,
|
BlockAIOCB *blk_aio_pwrite_zeroes(BlockBackend *blk, int64_t offset,
|
||||||
|
Loading…
Reference in New Issue
Block a user