From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NBUBz-0004ng-54 for qemu-devel@nongnu.org; Fri, 20 Nov 2009 09:10:31 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NBUBu-0004lG-EL for qemu-devel@nongnu.org; Fri, 20 Nov 2009 09:10:30 -0500 Received: from [199.232.76.173] (port=48040 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NBUBu-0004l8-AI for qemu-devel@nongnu.org; Fri, 20 Nov 2009 09:10:26 -0500 Received: from mx1.redhat.com ([209.132.183.28]:64549) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NBUBt-0003rc-N1 for qemu-devel@nongnu.org; Fri, 20 Nov 2009 09:10:26 -0500 Received: from int-mx05.intmail.prod.int.phx2.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.18]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id nAKEAOps029516 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 20 Nov 2009 09:10:24 -0500 From: Markus Armbruster Subject: Re: [Qemu-devel] [PATCH 12/17] char: Convert qemu_chr_info() to QObject References: <1258489944-12159-1-git-send-email-lcapitulino@redhat.com> <1258489944-12159-13-git-send-email-lcapitulino@redhat.com> Date: Fri, 20 Nov 2009 15:10:20 +0100 In-Reply-To: <1258489944-12159-13-git-send-email-lcapitulino@redhat.com> (Luiz Capitulino's message of "Tue, 17 Nov 2009 18:32:19 -0200") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: qemu-devel@nongnu.org Luiz Capitulino writes: > Each device is represented by a QDict. The returned QObject is a QList > of all devices. > > This commit should not change user output. > > Signed-off-by: Luiz Capitulino > --- > monitor.c | 3 ++- > qemu-char.c | 43 +++++++++++++++++++++++++++++++++++++++++-- > qemu-char.h | 4 +++- > 3 files changed, 46 insertions(+), 4 deletions(-) > > diff --git a/monitor.c b/monitor.c > index e4fed10..a0a9281 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -2040,7 +2040,8 @@ static const mon_cmd_t info_cmds[] = { > .args_type = "", > .params = "", > .help = "show the character devices", > - .mhandler.info = qemu_chr_info, > + .user_print = qemu_chr_info_print, > + .mhandler.info_new = qemu_chr_info, > }, > { > .name = "block", > diff --git a/qemu-char.c b/qemu-char.c > index 5a81e8f..7fcde98 100644 > --- a/qemu-char.c > +++ b/qemu-char.c > @@ -32,6 +32,7 @@ > #include "hw/usb.h" > #include "hw/baum.h" > #include "hw/msmouse.h" > +#include "qemu-objects.h" > > #include > #include > @@ -2465,13 +2466,51 @@ void qemu_chr_close(CharDriverState *chr) > qemu_free(chr); > } > > -void qemu_chr_info(Monitor *mon) > +static void qemu_chr_print_qlist(QObject *obj, void *opaque) Why *_qlist? It prints a qdict, which happens to be a list element, but this function doesn't know that. > { > + 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_print_qlist, mon); > +} [...]