@@ -2402,8 +2402,7 @@ static const mon_cmd_t info_cmds[] = {
.args_type = "",
.params = "",
.help = "show the character devices",
- .user_print = qemu_chr_info_print,
- .mhandler.info_new = qmp_query_chardev,
+ .mhandler.info = qemu_chr_info,
},
{
.name = "block",
@@ -2584,9 +2584,13 @@ static void qemu_chr_qlist_iter(QObject *obj, void *opaque)
qdict_get_str(chr_dict, "filename"));
}
-void qemu_chr_info_print(Monitor *mon, const QObject *ret_data)
+void qemu_chr_info(Monitor *mon)
{
- qlist_iter(qobject_to_qlist(ret_data), qemu_chr_qlist_iter, mon);
+ QObject *data;
+
+ qmp_query_chardev(NULL, &data);
+ qlist_iter(qobject_to_qlist(data), qemu_chr_qlist_iter, mon);
+ qobject_decref(data);
}
void qmp_query_chardev(Monitor *mon, QObject **ret_data)
@@ -92,7 +92,7 @@ int qemu_chr_can_read(CharDriverState *s);
void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len);
int qemu_chr_get_msgfd(CharDriverState *s);
void qemu_chr_accept_input(CharDriverState *s);
-void qemu_chr_info_print(Monitor *mon, const QObject *ret_data);
+void qemu_chr_info(Monitor *mon);
void qmp_query_chardev(Monitor *mon, QObject **ret_data);
CharDriverState *qemu_chr_find(const char *name);
The new handler directly calls qmp_query_chardev() 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> --- monitor.c | 3 +-- qemu-char.c | 8 ++++++-- qemu-char.h | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-)