@@ -3065,3 +3065,15 @@ int bdrv_map(BlockDriverState *bs, uint64_t *guest_offset,
return drv->bdrv_map(bs, guest_offset, host_offset,
contiguous_bytes);
}
+
+int bdrv_copy_header(BlockDriverState *bs)
+{
+ BlockDriver *drv = bs->drv;
+ if (!drv) {
+ return -ENOMEDIUM;
+ }
+ if (!drv->bdrv_copy_header) {
+ return -ENOTSUP;
+ }
+ return drv->bdrv_copy_header(bs);
+}
@@ -256,6 +256,8 @@ int bdrv_get_mapping(BlockDriverState *bs, uint64_t *guest_offset,
uint64_t *host_offset, uint64_t *contiguous_bytes);
int bdrv_map(BlockDriverState *bs, uint64_t *guest_offset,
uint64_t *host_offset, uint64_t *contiguous_bytes);
+int bdrv_copy_header(BlockDriverState *bs);
+
typedef enum {
BLKDBG_L1_UPDATE,
Signed-off-by: Devin Nakamura <devin122@gmail.com> --- block.c | 12 ++++++++++++ block.h | 2 ++ 2 files changed, 14 insertions(+), 0 deletions(-)