Nathan Baum <nat...@parenthephobia.org.uk> writes: > Returns a QObject with information about a USB device. > > Signed-off-by: Nathan Baum <nat...@parenthephobia.org.uk> > --- > 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, 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;