qdev/usb: add usb bus support to qdev, convert drivers.

* Add USBBus.
 * Add USBDeviceInfo, move device callbacks here.
 * Add usb-qdev helper functions.
 * Switch drivers to qdev.

TODO:
 * make the rest of qemu aware of usb busses and kill the FIXMEs
   added by this patch.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Gerd Hoffmann 2009-08-31 14:23:59 +02:00 committed by Anthony Liguori
parent 7557008854
commit 806b602482
17 changed files with 428 additions and 197 deletions

View file

@ -392,21 +392,31 @@ static void usb_wacom_handle_destroy(USBDevice *dev)
qemu_free(s);
}
static int usb_wacom_initfn(USBDevice *dev)
{
USBWacomState *s = DO_UPCAST(USBWacomState, dev, dev);
s->dev.speed = USB_SPEED_FULL;
return 0;
}
USBDevice *usb_wacom_init(void)
{
USBWacomState *s;
s = qemu_mallocz(sizeof(USBWacomState));
s->dev.speed = USB_SPEED_FULL;
s->dev.handle_packet = usb_generic_handle_packet;
s->dev.handle_reset = usb_wacom_handle_reset;
s->dev.handle_control = usb_wacom_handle_control;
s->dev.handle_data = usb_wacom_handle_data;
s->dev.handle_destroy = usb_wacom_handle_destroy;
pstrcpy(s->dev.devname, sizeof(s->dev.devname),
"QEMU PenPartner Tablet");
return (USBDevice *) s;
return usb_create_simple(NULL /* FIXME */, "QEMU PenPartner Tablet");
}
static struct USBDeviceInfo wacom_info = {
.qdev.name = "QEMU PenPartner Tablet",
.qdev.size = sizeof(USBWacomState),
.init = usb_wacom_initfn,
.handle_packet = usb_generic_handle_packet,
.handle_reset = usb_wacom_handle_reset,
.handle_control = usb_wacom_handle_control,
.handle_data = usb_wacom_handle_data,
.handle_destroy = usb_wacom_handle_destroy,
};
static void usb_wacom_register_devices(void)
{
usb_qdev_register(&wacom_info);
}
device_init(usb_wacom_register_devices)