From 3fb06697ae30ea59bf245f967a043e60f2aedb17 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Mon, 25 Apr 2016 11:25:18 +0200 Subject: block: Introduce .bdrv_co_preadv/pwritev BlockDriver function Many parts of the block layer are already byte granularity. The block driver interface, however, was still missing an interface that allows making use of this. This patch introduces a new BlockDriver interface, which is based on coroutines, vectored, has flags and uses a byte granularity. This is now the preferred interface for new drivers. Signed-off-by: Kevin Wolf Reviewed-by: Eric Blake Reviewed-by: Fam Zheng --- include/block/block_int.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/block/block_int.h b/include/block/block_int.h index 804bc1d60b..565f795758 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -153,10 +153,14 @@ struct BlockDriver { int coroutine_fn (*bdrv_co_readv)(BlockDriverState *bs, int64_t sector_num, int nb_sectors, QEMUIOVector *qiov); + int coroutine_fn (*bdrv_co_preadv)(BlockDriverState *bs, + uint64_t offset, uint64_t bytes, QEMUIOVector *qiov, int flags); int coroutine_fn (*bdrv_co_writev)(BlockDriverState *bs, int64_t sector_num, int nb_sectors, QEMUIOVector *qiov); int coroutine_fn (*bdrv_co_writev_flags)(BlockDriverState *bs, int64_t sector_num, int nb_sectors, QEMUIOVector *qiov, int flags); + int coroutine_fn (*bdrv_co_pwritev)(BlockDriverState *bs, + uint64_t offset, uint64_t bytes, QEMUIOVector *qiov, int flags); int supported_write_flags; -- cgit v1.2.3-55-g7522