From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MLGG3-0006V3-3W for qemu-devel@nongnu.org; Mon, 29 Jun 2009 08:46:51 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MLGFx-0006QE-E4 for qemu-devel@nongnu.org; Mon, 29 Jun 2009 08:46:50 -0400 Received: from [199.232.76.173] (port=41130 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MLGFw-0006Pz-BD for qemu-devel@nongnu.org; Mon, 29 Jun 2009 08:46:44 -0400 Received: from mx2.redhat.com ([66.187.237.31]:36464) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MLGFv-0003sf-O4 for qemu-devel@nongnu.org; Mon, 29 Jun 2009 08:46:44 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n5TCkhdt007146 for ; Mon, 29 Jun 2009 08:46:43 -0400 From: Gerd Hoffmann Date: Mon, 29 Jun 2009 14:46:17 +0200 Message-Id: <1246279581-15749-17-git-send-email-kraxel@redhat.com> In-Reply-To: <1246279581-15749-1-git-send-email-kraxel@redhat.com> References: <1246279581-15749-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PATCH 16/20] qdev/usb: print usb dev info List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerd Hoffmann Signed-off-by: Gerd Hoffmann --- hw/usb-bus.c | 26 ++++++++++++++++++++++++++ hw/usb.h | 1 + vl.c | 17 +---------------- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/hw/usb-bus.c b/hw/usb-bus.c index 689df9f..9f07946 100644 --- a/hw/usb-bus.c +++ b/hw/usb-bus.c @@ -1,10 +1,14 @@ #include "hw.h" #include "usb.h" #include "qdev.h" +#include "monitor.h" + +static void usb_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent); static struct BusInfo usb_bus_info = { .name = "USB", .size = sizeof(USBBus), + .print = usb_bus_dev_print, }; USBBus *usb_bus_new(DeviceState *host) @@ -137,3 +141,25 @@ int usb_device_delete_addr(int busnr, int addr) bus->nfree++; return 0; } + +const char *usb_speed(unsigned int speed) +{ + static const char *txt[] = { + [ USB_SPEED_LOW ] = "1.5", + [ USB_SPEED_FULL ] = "12", + [ USB_SPEED_HIGH ] = "480", + }; + if (speed >= ARRAY_SIZE(txt)) + return "?"; + return txt[speed]; +} + +static void usb_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent) +{ + USBDevice *dev = DO_UPCAST(USBDevice, qdev, qdev); + USBBus *bus = usb_bus_from_device(dev); + + monitor_printf(mon, "%*saddr %d.%d, speed %s, name %s\n", indent, "", + bus->qbus.busnr, dev->addr, + usb_speed(dev->speed), dev->devname); +} diff --git a/hw/usb.h b/hw/usb.h index d68988a..3169bc9 100644 --- a/hw/usb.h +++ b/hw/usb.h @@ -309,6 +309,7 @@ void usb_register_port(USBBus *bus, USBPort *port, void *opaque, int index, usb_attachfn attach); int usb_device_attach(USBDevice *dev); int usb_device_delete_addr(int busnr, int addr); +const char *usb_speed(unsigned int speed); static inline USBBus *usb_bus_from_device(USBDevice *d) { diff --git a/vl.c b/vl.c index 7add3d7..0462892 100644 --- a/vl.c +++ b/vl.c @@ -2746,7 +2746,6 @@ void usb_info(Monitor *mon) USBBus *bus; USBDevice *dev; USBPort *port; - const char *speed_str; int busnr; if (!usb_enabled) { @@ -2762,22 +2761,8 @@ void usb_info(Monitor *mon) dev = port->dev; if (!dev) continue; - switch(dev->speed) { - case USB_SPEED_LOW: - speed_str = "1.5"; - break; - case USB_SPEED_FULL: - speed_str = "12"; - break; - case USB_SPEED_HIGH: - speed_str = "480"; - break; - default: - speed_str = "?"; - break; - } monitor_printf(mon, " Device %d.%d, Speed %s Mb/s, Product %s\n", - busnr, dev->addr, speed_str, dev->devname); + busnr, dev->addr, usb_speed(dev->speed), dev->devname); } } } -- 1.6.2.5