@@ -1591,9 +1591,13 @@ static void bdrv_print_dict(QObject *obj, void *opaque)
monitor_printf(mon, "\n");
}
-void bdrv_info_print(Monitor *mon, const QObject *data)
+void bdrv_info(Monitor *mon)
{
+ QObject *data;
+
+ qmp_query_block(NULL, &data);
qlist_iter(qobject_to_qlist(data), bdrv_print_dict, mon);
+ qobject_decref(data);
}
void qmp_query_block(Monitor *mon, QObject **ret_data)
@@ -52,8 +52,8 @@ typedef enum {
void bdrv_mon_event(const BlockDriverState *bdrv,
BlockMonEventAction action, int is_read);
-void bdrv_info_print(Monitor *mon, const QObject *data);
void qmp_query_block(Monitor *mon, QObject **ret_data);
+void bdrv_info(Monitor *mon);
void bdrv_stats_print(Monitor *mon, const QObject *data);
void qmp_query_blockstats(Monitor *mon, QObject **ret_data);
@@ -2409,8 +2409,7 @@ static const mon_cmd_t info_cmds[] = {
.args_type = "",
.params = "",
.help = "show the block devices",
- .user_print = bdrv_info_print,
- .mhandler.info_new = qmp_query_block,
+ .mhandler.info = bdrv_info,
},
{
.name = "blockstats",
The new handler directly calls qmp_query_block() to gather data and then prints it. This change allows us to drop the user_print callback. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> --- block.c | 6 +++++- block.h | 2 +- monitor.c | 3 +-- 3 files changed, 7 insertions(+), 4 deletions(-)