qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC,PATCH 08/11] qdev: Add usb_bus_dev_info


From: Nathan Baum
Subject: Re: [Qemu-devel] [RFC,PATCH 08/11] qdev: Add usb_bus_dev_info
Date: Fri, 15 Jan 2010 22:14:51 +0000

On Fri, 2010-01-15 at 19:14 +0100, Markus Armbruster wrote:
> Nathan Baum <address@hidden> writes:
> 
> > Returns a QObject with information about a USB device.
> >
> > Signed-off-by: Nathan Baum <address@hidden>
> > ---
> >  hw/usb-bus.c |   13 +++++++++++++
> >  1 files changed, 13 insertions(+), 0 deletions(-)
> >
> > diff --git a/hw/usb-bus.c b/hw/usb-bus.c
> > index 54027df..6d02807 100644
> > --- a/hw/usb-bus.c
> > +++ b/hw/usb-bus.c
> > @@ -3,6 +3,7 @@
> >  #include "qdev.h"
> >  #include "sysemu.h"
> >  #include "monitor.h"
> > +#include "qjson.h"
> >  
> >  static void usb_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent);
> >  
> > @@ -232,6 +233,18 @@ static void usb_bus_dev_print(Monitor *mon, 
> > DeviceState *qdev, int indent)
> >                     dev->attached ? ", attached" : "");
> >  }
> >  
> > +static QObject *usb_bus_dev_info(Monitor *mon, DeviceState *qdev)
> > +{
> > +    USBDevice *dev = DO_UPCAST(USBDevice, qdev, qdev);
> > +    USBBus *bus = usb_bus_from_device(dev);
> > +    return qobject_from_jsonf("{'busnr': %d, 'addr':%d, 'speed': %s, 
> > 'desc': %s, 'attached': %i}",
> > +                              bus->busnr,
> 
> As for PCI, 'busnr' belongs to the bus, not the device.

Hmm. In cases like this, is it appropriate to modify the output of the
existing "info qtree" when it is modified to use the QObject data?

Would it be sensible to go the (probably small amount of) effort to
change the print functions to print exactly they do now, and put changes
to their output in different patches so they can easily be dropped if
necessary?

> Hmm, we don't have the infrastructure to return bus information, yet.
> "info qtree" hardcodes printing of name and type.  Gerd, what do you
> think?
> 
> > +                              dev->addr,
> > +                              usb_speed(dev->speed),
> > +                              dev->product_desc,
> > +                              dev->attached);
> > +}
> > +
> >  void usb_info(Monitor *mon)
> >  {
> >      USBBus *bus;






reply via email to

[Prev in Thread] Current Thread [Next in Thread]