Signed-off-by: Devin Nakamura <devin...@gmail.com> --- block.c | 19 +++++++++++++++++++ block.h | 2 ++ 2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/block.c b/block.c index 24a25d5..e7699a6 100644 --- a/block.c +++ b/block.c @@ -3018,3 +3018,22 @@ out: return ret; } + + +int bdrv_open_conversion_target(BlockDriverState **bs, + char *filename, char *target_fmt, QEMUOptionParameter *options) +{ + BlockDriver *drv; + + drv = bdrv_find_format(target_fmt); + if(!drv){ + return -ENOENT; + } + + if(!drv->bdrv_open_conversion_target){ + return -ENOTSUP; + } + *bs = bdrv_new(""); + (*bs)->opaque = qemu_malloc(drv->instance_size); + return drv->bdrv_open_conversion_target(*bs, filename, options); +} diff --git a/block.h b/block.h index 859d1d9..da87afb 100644 --- a/block.h +++ b/block.h @@ -250,6 +250,8 @@ int64_t bdrv_get_dirty_count(BlockDriverState *bs); void bdrv_set_in_use(BlockDriverState *bs, int in_use); int bdrv_in_use(BlockDriverState *bs); +int bdrv_open_conversion_target(BlockDriverState **bs, char *filename, + char *target_fmt, QEMUOptionParameter *options); typedef enum { BLKDBG_L1_UPDATE, -- 1.7.6.rc1