[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V10 16/17] hmp: show ImageInfo in 'info block'
From: |
Wenchao Xia |
Subject: |
[Qemu-devel] [PATCH V10 16/17] hmp: show ImageInfo in 'info block' |
Date: |
Fri, 22 Mar 2013 22:19:12 +0800 |
Now human monitor can show image details include internal
snapshot info for every block device.
Signed-off-by: Wenchao Xia <address@hidden>
---
hmp.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/hmp.c b/hmp.c
index c475d65..49f851b 100644
--- a/hmp.c
+++ b/hmp.c
@@ -22,6 +22,7 @@
#include "qemu/sockets.h"
#include "monitor/monitor.h"
#include "ui/console.h"
+#include "block/qapi.h"
static void hmp_handle_error(Monitor *mon, Error **errp)
{
@@ -272,9 +273,12 @@ void hmp_info_cpus(Monitor *mon, const QDict *qdict)
qapi_free_CpuInfoList(cpu_list);
}
+#define IMAGE_INFO_BUF_SIZE (2048)
void hmp_info_block(Monitor *mon, const QDict *qdict)
{
BlockInfoList *block_list, *info;
+ ImageInfo *image_info;
+ char *buf = NULL;
block_list = qmp_query_block(NULL);
@@ -316,6 +320,22 @@ void hmp_info_block(Monitor *mon, const QDict *qdict)
info->value->inserted->iops,
info->value->inserted->iops_rd,
info->value->inserted->iops_wr);
+
+ if (!buf) {
+ buf = g_malloc0(IMAGE_INFO_BUF_SIZE);
+ }
+ monitor_printf(mon, " images:\n");
+ image_info = info->value->inserted->image;
+ while (1) {
+ bdrv_image_info_dump(buf, IMAGE_INFO_BUF_SIZE, image_info);
+ monitor_printf(mon, "%s", buf);
+ if (image_info->has_backing_image) {
+ image_info = image_info->backing_image;
+ } else {
+ break;
+ }
+ }
+
} else {
monitor_printf(mon, " [not inserted]");
}
@@ -323,6 +343,7 @@ void hmp_info_block(Monitor *mon, const QDict *qdict)
monitor_printf(mon, "\n");
}
+ g_free(buf);
qapi_free_BlockInfoList(block_list);
}
--
1.7.1
- [Qemu-devel] [PATCH V10 09/17] qmp: add interface query-snapshots, (continued)
- [Qemu-devel] [PATCH V10 09/17] qmp: add interface query-snapshots, Wenchao Xia, 2013/03/22
- [Qemu-devel] [PATCH V10 07/17] block: add image info query function bdrv_query_image_info(), Wenchao Xia, 2013/03/22
- [Qemu-devel] [PATCH V10 10/17] qmp: add recursive member in ImageInfo, Wenchao Xia, 2013/03/22
- [Qemu-devel] [PATCH V10 11/17] qmp: add ImageInfo in BlockDeviceInfo used by query-block, Wenchao Xia, 2013/03/22
- [Qemu-devel] [PATCH V10 12/17] hmp: add function hmp_info_snapshots(), Wenchao Xia, 2013/03/22
- [Qemu-devel] [PATCH V10 13/17] hmp: switch snapshot info function to qmp based one, Wenchao Xia, 2013/03/22
- [Qemu-devel] [PATCH V10 14/17] block: move dump_human_image_info() to block/qapi.c, Wenchao Xia, 2013/03/22
- [Qemu-devel] [PATCH V10 15/17] block: dump to buffer for bdrv_image_info_dump(), Wenchao Xia, 2013/03/22
- [Qemu-devel] [PATCH V10 16/17] hmp: show ImageInfo in 'info block',
Wenchao Xia <=
- [Qemu-devel] [PATCH V10 17/17] hmp: add parameter device and -b for info block, Wenchao Xia, 2013/03/22
- Re: [Qemu-devel] [PATCH V10 00/17] qmp/hmp interfaces for internal snapshot info, Kevin Wolf, 2013/03/28