mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
usb-bus: convert USBDeviceClass init to realize
Add "realize/unrealize" in USBDeviceClass, which has errp as a parameter. So all the implementations now use error_setg instead of error_report for reporting error. Note: this patch still keep "init" in USBDeviceClass, and call kclass->init in usb_device_realize(), avoid breaking git bisect. After realize all usb devices, will be removed. Signed-off-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
dc1f598845
commit
7d553f27fc
6 changed files with 81 additions and 50 deletions
|
@ -267,11 +267,17 @@ struct USBDevice {
|
|||
#define USB_DEVICE_GET_CLASS(obj) \
|
||||
OBJECT_GET_CLASS(USBDeviceClass, (obj), TYPE_USB_DEVICE)
|
||||
|
||||
typedef void (*USBDeviceRealize)(USBDevice *dev, Error **errp);
|
||||
typedef void (*USBDeviceUnrealize)(USBDevice *dev, Error **errp);
|
||||
|
||||
typedef struct USBDeviceClass {
|
||||
DeviceClass parent_class;
|
||||
|
||||
int (*init)(USBDevice *dev);
|
||||
|
||||
USBDeviceRealize realize;
|
||||
USBDeviceUnrealize unrealize;
|
||||
|
||||
/*
|
||||
* Walk (enabled) downstream ports, check for a matching device.
|
||||
* Only hubs implement this.
|
||||
|
@ -544,9 +550,9 @@ int usb_register_companion(const char *masterbus, USBPort *ports[],
|
|||
void *opaque, USBPortOps *ops, int speedmask);
|
||||
void usb_port_location(USBPort *downstream, USBPort *upstream, int portnr);
|
||||
void usb_unregister_port(USBBus *bus, USBPort *port);
|
||||
int usb_claim_port(USBDevice *dev);
|
||||
void usb_claim_port(USBDevice *dev, Error **errp);
|
||||
void usb_release_port(USBDevice *dev);
|
||||
int usb_device_attach(USBDevice *dev);
|
||||
void usb_device_attach(USBDevice *dev, Error **errp);
|
||||
int usb_device_detach(USBDevice *dev);
|
||||
int usb_device_delete_addr(int busnr, int addr);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue