summary refs log tree commit diff stats
path: root/qemu-char.c
diff options
context:
space:
mode:
authorAnthony Liguori <aliguori@us.ibm.com>2011-10-10 08:21:46 -0500
committerAnthony Liguori <aliguori@us.ibm.com>2011-10-10 08:21:46 -0500
commitebffe2afceb1a17b5d134b5debf553955fe5ea1a (patch)
tree223ee0630a56a8d1410d5ad283996486ec434ab7 /qemu-char.c
parent057643f6c4751651ab640edb9b445cb3816edffc (diff)
parent5bc465e4b1b6f4582a400c0a7033a1c841744278 (diff)
downloadfocaccia-qemu-ebffe2afceb1a17b5d134b5debf553955fe5ea1a.tar.gz
focaccia-qemu-ebffe2afceb1a17b5d134b5debf553955fe5ea1a.zip
Merge remote-tracking branch 'qmp/queue/qmp' into staging
Diffstat (limited to 'qemu-char.c')
-rw-r--r--qemu-char.c35
1 files changed, 11 insertions, 24 deletions
diff --git a/qemu-char.c b/qemu-char.c
index 09d2309eb6..8bdbcfdad2 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -31,7 +31,7 @@
 #include "hw/usb.h"
 #include "hw/baum.h"
 #include "hw/msmouse.h"
-#include "qemu-objects.h"
+#include "qmp-commands.h"
 
 #include <unistd.h>
 #include <fcntl.h>
@@ -2650,35 +2650,22 @@ void qemu_chr_delete(CharDriverState *chr)
     g_free(chr);
 }
 
-static void qemu_chr_qlist_iter(QObject *obj, void *opaque)
+ChardevInfoList *qmp_query_chardev(Error **errp)
 {
-    QDict *chr_dict;
-    Monitor *mon = opaque;
-
-    chr_dict = qobject_to_qdict(obj);
-    monitor_printf(mon, "%s: filename=%s\n", qdict_get_str(chr_dict, "label"),
-                                         qdict_get_str(chr_dict, "filename"));
-}
-
-void qemu_chr_info_print(Monitor *mon, const QObject *ret_data)
-{
-    qlist_iter(qobject_to_qlist(ret_data), qemu_chr_qlist_iter, mon);
-}
-
-void qemu_chr_info(Monitor *mon, QObject **ret_data)
-{
-    QList *chr_list;
+    ChardevInfoList *chr_list = NULL;
     CharDriverState *chr;
 
-    chr_list = qlist_new();
-
     QTAILQ_FOREACH(chr, &chardevs, next) {
-        QObject *obj = qobject_from_jsonf("{ 'label': %s, 'filename': %s }",
-                                          chr->label, chr->filename);
-        qlist_append_obj(chr_list, obj);
+        ChardevInfoList *info = g_malloc0(sizeof(*info));
+        info->value = g_malloc0(sizeof(*info->value));
+        info->value->label = g_strdup(chr->label);
+        info->value->filename = g_strdup(chr->filename);
+
+        info->next = chr_list;
+        chr_list = info;
     }
 
-    *ret_data = QOBJECT(chr_list);
+    return chr_list;
 }
 
 CharDriverState *qemu_chr_find(const char *name)