mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00

ImageInfo sometimes contains flat information, and sometimes it does not. Split off a BlockNodeInfo struct, which only contains information about a single node and has no link to the backing image. We do this so we can extend BlockNodeInfo to a BlockGraphInfo struct, which has links to all child nodes, not just the backing node. It would be strange to base BlockGraphInfo on ImageInfo, because then this extended struct would have two links to the backing node (one in BlockGraphInfo as one of all the child links, and one in ImageInfo). Furthermore, it is quite common to ignore the backing-image field altogether: bdrv_query_image_info() does not set it, and bdrv_image_info_dump() does not evaluate it. That signals that we should have different structs for describing a single node and one that has a link to the backing image. Still, bdrv_query_image_info() and bdrv_image_info_dump() are not changed too much in this patch. Follow-up patches will handle them. Signed-off-by: Hanna Reitz <hreitz@redhat.com> Message-Id: <20220620162704.80987-5-hreitz@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
49 lines
2.1 KiB
C
49 lines
2.1 KiB
C
/*
|
|
* Block layer qmp and info dump related functions
|
|
*
|
|
* Copyright (c) 2003-2008 Fabrice Bellard
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* in the Software without restriction, including without limitation the rights
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
* THE SOFTWARE.
|
|
*/
|
|
|
|
#ifndef BLOCK_QAPI_H
|
|
#define BLOCK_QAPI_H
|
|
|
|
#include "block/snapshot.h"
|
|
#include "qapi/qapi-types-block-core.h"
|
|
|
|
BlockDeviceInfo *bdrv_block_device_info(BlockBackend *blk,
|
|
BlockDriverState *bs,
|
|
bool flat,
|
|
Error **errp);
|
|
int bdrv_query_snapshot_info_list(BlockDriverState *bs,
|
|
SnapshotInfoList **p_list,
|
|
Error **errp);
|
|
void bdrv_query_block_node_info(BlockDriverState *bs,
|
|
BlockNodeInfo **p_info,
|
|
Error **errp);
|
|
void bdrv_query_image_info(BlockDriverState *bs,
|
|
ImageInfo **p_info,
|
|
Error **errp);
|
|
|
|
void bdrv_snapshot_dump(QEMUSnapshotInfo *sn);
|
|
void bdrv_image_info_specific_dump(ImageInfoSpecific *info_spec,
|
|
const char *prefix);
|
|
void bdrv_image_info_dump(ImageInfo *info);
|
|
#endif
|