aboutsummaryrefslogtreecommitdiff
path: root/vl.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2009-10-26 15:56:45 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2009-10-30 08:39:30 -0500
commit0958b4cc8f7889b61770690fa29a1201895cf581 (patch)
tree377a8fb798d1607f0c90d852b31465fd4db1f13e /vl.c
parent51edd4e6b5a5dfbe168f21ff7cdc5d63e16c160b (diff)
usb core: use qdev for -usbdevice
This patchs adds infrastructure to handle -usbdevice via qdev callbacks. USBDeviceInfo gets a name field (for the -usbdevice driver name) and a callback for -usbdevice parameter parsing. The new usbdevice_create() function walks the qdev driver list and looks for a usb driver with a matching name. When a parameter parsing callback is present it is called, otherwise the device is created via usb_create_simple(). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/vl.c b/vl.c
index ac9ff5251d..a58bc06412 100644
--- a/vl.c
+++ b/vl.c
@@ -2556,6 +2556,11 @@ static int usb_device_add(const char *devname, int is_hotplug)
if (!usb_enabled)
return -1;
+ /* drivers with .usbdevice_name entry in USBDeviceInfo */
+ dev = usbdevice_create(devname);
+ if (dev)
+ goto done;
+
/* simple devices which don't need extra care */
for (i = 0; i < ARRAY_SIZE(usbdevs); i++) {
if (strcmp(devname, usbdevs[i].name) != 0)