From: Luiz Capitulino <lcapitulino@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH 13/17] PCI: Convert pci_device_hot_add() to QObject
Date: Mon, 23 Nov 2009 11:30:44 -0200 [thread overview]
Message-ID: <20091123113044.4db46561@doriath> (raw)
In-Reply-To: <20091123094457.GC3748@redhat.com>
On Mon, 23 Nov 2009 11:44:57 +0200
"Michael S. Tsirkin" <mst@redhat.com> wrote:
> On Tue, Nov 17, 2009 at 06:32:20PM -0200, Luiz Capitulino wrote:
> > Return a QDict with information about the just added device.
> >
> > This commit should not change user output.
> >
> > Please, note that this patch does not do error handling
> > conversion. In error conditions the handler still calls
> > monitor_printf().
> >
> > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> > ---
> > hw/pci-hotplug.c | 37 +++++++++++++++++++++++++++++++++----
> > qemu-monitor.hx | 3 ++-
> > sysemu.h | 3 ++-
> > 3 files changed, 37 insertions(+), 6 deletions(-)
> >
> > diff --git a/hw/pci-hotplug.c b/hw/pci-hotplug.c
> > index a254498..93802a2 100644
> > --- a/hw/pci-hotplug.c
> > +++ b/hw/pci-hotplug.c
> > @@ -33,6 +33,7 @@
> > #include "scsi.h"
> > #include "virtio-blk.h"
> > #include "qemu-config.h"
> > +#include "qemu-objects.h"
> >
> > #if defined(TARGET_I386)
> > static PCIDevice *qemu_pci_hot_add_nic(Monitor *mon,
> > @@ -212,7 +213,36 @@ static PCIDevice *qemu_pci_hot_add_storage(Monitor *mon,
> > return dev;
> > }
> >
> > -void pci_device_hot_add(Monitor *mon, const QDict *qdict)
> > +void pci_device_hot_add_print(Monitor *mon, const QObject *data)
>
> it only prints - why the strange name?
I'm adding the _print suffix to the functions which print
handler data, that's, handle_name + _print.
It may have strange results, indeed, but sometimes it's difficult
to come with good names as I'm converting several handlers.
Also, I'd like to have standard names and haven't decided for
one yet.
> > +{
> > + QDict *qdict;
> > +
> > + assert(qobject_type(data) == QTYPE_QDICT);
> > + qdict = qobject_to_qdict(data);
> > +
> > + monitor_printf(mon, "OK domain %d, bus %d, slot %d, function %d\n",
> > + (int) qdict_get_int(qdict, "domain"),
> > + (int) qdict_get_int(qdict, "bus"),
> > + (int) qdict_get_int(qdict, "slot"),
> > + (int) qdict_get_int(qdict, "function"));
> > +
> > +}
> > +
> > +/**
> > + * pci_device_hot_add(): Hot add PCI device
> > + *
> > + * Return a QDict with the following device information:
> > + *
> > + * - "domain": domain number
> > + * - "bus": bus number
> > + * - "slot": slot number
> > + * - "function": function number
> > + *
> > + * Example:
> > + *
> > + * { "domain": 0, "bus": 0, "slot": 5, "function": 0 }
> > + */
> > +void pci_device_hot_add(Monitor *mon, const QDict *qdict, QObject **ret_data)
> > {
> > PCIDevice *dev = NULL;
> > const char *pci_addr = qdict_get_str(qdict, "pci_addr");
> > @@ -239,9 +269,8 @@ void pci_device_hot_add(Monitor *mon, const QDict *qdict)
> > monitor_printf(mon, "invalid type: %s\n", type);
> >
> > if (dev) {
> > - monitor_printf(mon, "OK domain %d, bus %d, slot %d, function %d\n",
> > - 0, pci_bus_num(dev->bus), PCI_SLOT(dev->devfn),
> > - PCI_FUNC(dev->devfn));
> > + *ret_data = qobject_from_jsonf("{ 'domain': 0, 'bus': %d, 'slot': %d, 'function': %d }", pci_bus_num(dev->bus), PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
>
> this line is waay too long.
I can brake it, although I don't think the result is going to be
prettier.
> > + assert(*ret_data != NULL);
> > } else
> > monitor_printf(mon, "failed to add %s\n", opts);
> > }
> > diff --git a/qemu-monitor.hx b/qemu-monitor.hx
> > index 62e395b..b50a2da 100644
> > --- a/qemu-monitor.hx
> > +++ b/qemu-monitor.hx
> > @@ -809,7 +809,8 @@ ETEXI
> > .args_type = "pci_addr:s,type:s,opts:s?",
> > .params = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
>
>
> and this
This line is not part of the series.
next prev parent reply other threads:[~2009-11-23 13:30 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-17 20:32 [Qemu-devel] [PATCH v0 00/17]: info handlers conversions to QObject Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 01/17] Introduce qemu-objects.h header file Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 02/17] Makefile: move QObject objs to their own entry Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 03/17] QDict: Introduce qdict_get_qbool() Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 04/17] QDict: Introduce qdict_get_qlist() Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 05/17] monitor: Convert do_info_status() to QObject Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 06/17] monitor: Convert do_info_kvm() " Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 07/17] monitor: Convert do_info_name() " Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 08/17] monitor: Convert do_info_hpet() " Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 09/17] monitor: Convert do_info_uuid() " Luiz Capitulino
2009-11-20 13:38 ` Markus Armbruster
2009-11-17 20:32 ` [Qemu-devel] [PATCH 10/17] migration: Convert do_info_migrate() " Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 11/17] block: Convert bdrv_info() " Luiz Capitulino
2009-11-20 14:06 ` Markus Armbruster
2009-11-23 13:21 ` Luiz Capitulino
2009-11-23 15:34 ` Markus Armbruster
2009-11-17 20:32 ` [Qemu-devel] [PATCH 12/17] char: Convert qemu_chr_info() " Luiz Capitulino
2009-11-20 14:10 ` Markus Armbruster
2009-11-23 13:23 ` Luiz Capitulino
2009-11-23 15:39 ` Markus Armbruster
2009-11-17 20:32 ` [Qemu-devel] [PATCH 13/17] PCI: Convert pci_device_hot_add() " Luiz Capitulino
2009-11-20 14:21 ` Markus Armbruster
2009-11-23 9:44 ` [Qemu-devel] " Michael S. Tsirkin
2009-11-23 13:30 ` Luiz Capitulino [this message]
2009-11-30 10:31 ` Michael S. Tsirkin
2009-11-17 20:32 ` [Qemu-devel] [PATCH 14/17] block: Convert bdrv_info_stats() " Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 15/17] VNC: Convert do_info_vnc() " Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 16/17] net: Convert do_info_network() " Luiz Capitulino
2009-11-17 20:32 ` [Qemu-devel] [PATCH 17/17] monitor: Convert do_info_mice() " Luiz Capitulino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091123113044.4db46561@doriath \
--to=lcapitulino@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).