|
@@ -2,6 +2,8 @@
|
|
|
#include "hw/qdev-properties.h"
|
|
|
#include "hw/usb.h"
|
|
|
#include "qapi/error.h"
|
|
|
+#include "qapi/qapi-commands-machine.h"
|
|
|
+#include "qapi/type-helpers.h"
|
|
|
#include "qemu/error-report.h"
|
|
|
#include "qemu/module.h"
|
|
|
#include "sysemu/sysemu.h"
|
|
@@ -631,15 +633,16 @@ static char *usb_get_fw_dev_path(DeviceState *qdev)
|
|
|
return fw_path;
|
|
|
}
|
|
|
|
|
|
-void hmp_info_usb(Monitor *mon, const QDict *qdict)
|
|
|
+HumanReadableText *qmp_x_query_usb(Error **errp)
|
|
|
{
|
|
|
+ g_autoptr(GString) buf = g_string_new("");
|
|
|
USBBus *bus;
|
|
|
USBDevice *dev;
|
|
|
USBPort *port;
|
|
|
|
|
|
if (QTAILQ_EMPTY(&busses)) {
|
|
|
- monitor_printf(mon, "USB support not enabled\n");
|
|
|
- return;
|
|
|
+ error_setg(errp, "USB support not enabled");
|
|
|
+ return NULL;
|
|
|
}
|
|
|
|
|
|
QTAILQ_FOREACH(bus, &busses, next) {
|
|
@@ -647,14 +650,17 @@ void hmp_info_usb(Monitor *mon, const QDict *qdict)
|
|
|
dev = port->dev;
|
|
|
if (!dev)
|
|
|
continue;
|
|
|
- monitor_printf(mon, " Device %d.%d, Port %s, Speed %s Mb/s, "
|
|
|
- "Product %s%s%s\n",
|
|
|
- bus->busnr, dev->addr, port->path,
|
|
|
- usb_speed(dev->speed), dev->product_desc,
|
|
|
- dev->qdev.id ? ", ID: " : "",
|
|
|
- dev->qdev.id ?: "");
|
|
|
+ g_string_append_printf(buf,
|
|
|
+ " Device %d.%d, Port %s, Speed %s Mb/s, "
|
|
|
+ "Product %s%s%s\n",
|
|
|
+ bus->busnr, dev->addr, port->path,
|
|
|
+ usb_speed(dev->speed), dev->product_desc,
|
|
|
+ dev->qdev.id ? ", ID: " : "",
|
|
|
+ dev->qdev.id ?: "");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ return human_readable_text_from_str(buf);
|
|
|
}
|
|
|
|
|
|
/* handle legacy -usbdevice cmd line option */
|