--- blockdev.c | 8 ++++++++ qapi-schema.json | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+)
diff --git a/blockdev.c b/blockdev.c index 911ee7e..bfaeda0 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1938,6 +1938,14 @@ void qmp_drive_backup(const char *device, const char *target, } } +BlockGraphNode *qmp_query_drive_graph(const char *device, Error **errp) +{ + /* the implementation of this function would recurse through the + * BlockDriverState graph to build it's result + */ + return NULL; +} + #define DEFAULT_MIRROR_BUF_SIZE (10 << 20) void qmp_drive_mirror(const char *device, const char *target, diff --git a/qapi-schema.json b/qapi-schema.json index 60f3fd1..bca3d5a 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -1983,6 +1983,38 @@ { 'command': 'drive-backup', 'data': 'DriveBackup' } ## +# @BlockGraphNode +# +# Information about a node of the block driver state graph +# +# @node-name: the name of the node in the graph +# +# @drv: the name of the block format used by this node as described in +# @BlockDeviceInfo. +# +# @children: a list of @BlockGraphNode being the children of this node +# +# Since 1.8 +## +{ 'type': 'BlockGraphNode', + 'data': { 'node-name': 'str', 'drv': 'str', 'children': ['BlockGraphNode'] } } + +## +# @query-drive-graph +# +# Get the block driver states graph for a given drive +# +# @device: the name of the device to get the graph from +# +# Returns: the root @BlockGraphNode +# +# Since 1.8 +## +{ 'command': 'query-drive-graph', + 'data': { 'device': 'str' }, + 'returns': 'BlockGraphNode' } + +## # @drive-mirror # # Start mirroring a block device's writes to a new destination. -- 1.8.3.2