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


Reply via email to