mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
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>
This commit is contained in:
parent
51edd4e6b5
commit
0958b4cc8f
5 changed files with 59 additions and 1 deletions
5
hw/usb.h
5
hw/usb.h
|
@ -183,6 +183,10 @@ struct USBDeviceInfo {
|
|||
* Returns length or one of the USB_RET_ codes.
|
||||
*/
|
||||
int (*handle_data)(USBDevice *dev, USBPacket *p);
|
||||
|
||||
/* handle legacy -usbdevice command line options */
|
||||
const char *usbdevice_name;
|
||||
USBDevice *(*usbdevice_init)(const char *params);
|
||||
};
|
||||
|
||||
typedef void (*usb_attachfn)(USBPort *port, USBDevice *dev);
|
||||
|
@ -309,6 +313,7 @@ void usb_qdev_register(USBDeviceInfo *info);
|
|||
void usb_qdev_register_many(USBDeviceInfo *info);
|
||||
USBDevice *usb_create(USBBus *bus, const char *name);
|
||||
USBDevice *usb_create_simple(USBBus *bus, const char *name);
|
||||
USBDevice *usbdevice_create(const char *cmdline);
|
||||
void usb_register_port(USBBus *bus, USBPort *port, void *opaque, int index,
|
||||
usb_attachfn attach);
|
||||
void usb_unregister_port(USBBus *bus, USBPort *port);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue