'qemu-img info' is useful for showing additional information about an image - but sometimes the interesting information is specific to the protocol rather than to the format layer. Set the groundwork for showing this information; further patches will then enable specific pieces of information.
Signed-off-by: Eric Blake <ebl...@redhat.com> --- qapi/block-core.json | 6 +++++- block/qapi.c | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/qapi/block-core.json b/qapi/block-core.json index 91685be6c29..f28d5f5fc76 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -152,6 +152,9 @@ # @format-specific: structure supplying additional format-specific # information (since 1.7) # +# @protocol-specific: structure supplying additional protocol-specific +# information (since 4.0) +# # Since: 1.3 # ## @@ -162,7 +165,8 @@ '*backing-filename': 'str', '*full-backing-filename': 'str', '*backing-filename-format': 'str', '*snapshots': ['SnapshotInfo'], '*backing-image': 'ImageInfo', - '*format-specific': 'ImageInfoSpecific' } } + '*format-specific': 'ImageInfoSpecific', + '*protocol-specific': 'ImageInfoSpecific' } } ## # @ImageCheck: diff --git a/block/qapi.c b/block/qapi.c index c66f949db83..a8d104ba8ce 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -284,6 +284,9 @@ void bdrv_query_image_info(BlockDriverState *bs, } info->format_specific = bdrv_get_specific_info(bs); info->has_format_specific = info->format_specific != NULL; + info->protocol_specific = + bs->file ? bdrv_get_specific_info(bs->file->bs) : NULL; + info->has_protocol_specific = info->protocol_specific != NULL; backing_filename = bs->backing_file; if (backing_filename[0] != '\0') { @@ -870,4 +873,8 @@ void bdrv_image_info_dump(fprintf_function func_fprintf, void *f, func_fprintf(f, "Format specific information:\n"); bdrv_image_info_specific_dump(func_fprintf, f, info->format_specific); } + if (info->has_protocol_specific) { + func_fprintf(f, "Protocol specific information:\n"); + bdrv_image_info_specific_dump(func_fprintf, f, info->protocol_specific); + } } -- 2.20.1