On 5/29/20 3:44 PM, Markus Armbruster wrote:
> I'm converting from qdev_create()/qdev_init_nofail() to
> qdev_new()/qdev_realize_and_unref(); recent commit "qdev: New
> qdev_new(), qdev_realize(), etc." explains why.
> 
> USB devices use qdev_create() through usb_create().
> 
> Provide usb_new() and usb_realize_and_unref() for converting USB
> devices.
> 
> Cc: Gerd Hoffmann <kra...@redhat.com>
> Signed-off-by: Markus Armbruster <arm...@redhat.com>
> Reviewed-by: Gerd Hoffmann <kra...@redhat.com>
> ---
>  include/hw/usb.h |  2 ++
>  hw/usb/bus.c     | 10 ++++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/include/hw/usb.h b/include/hw/usb.h
> index 1cf1cd9584..2d2730f161 100644
> --- a/include/hw/usb.h
> +++ b/include/hw/usb.h
> @@ -534,6 +534,8 @@ USBBus *usb_bus_find(int busnr);
>  void usb_legacy_register(const char *typename, const char *usbdevice_name,
>                           USBDevice *(*usbdevice_init)(USBBus *bus,
>                                                        const char *params));
> +USBDevice *usb_new(const char *name);
> +bool usb_realize_and_unref(USBDevice *dev, USBBus *bus, Error **errp);
>  USBDevice *usb_create(USBBus *bus, const char *name);
>  USBDevice *usb_create_simple(USBBus *bus, const char *name);
>  USBDevice *usbdevice_create(const char *cmdline);
> diff --git a/hw/usb/bus.c b/hw/usb/bus.c
> index d28eff1b5c..6b0d9f9e4d 100644
> --- a/hw/usb/bus.c
> +++ b/hw/usb/bus.c
> @@ -314,6 +314,16 @@ void usb_legacy_register(const char *typename, const 
> char *usbdevice_name,
>      }
>  }
>  
> +USBDevice *usb_new(const char *name)
> +{
> +    return USB_DEVICE(qdev_new(name));
> +}
> +
> +bool usb_realize_and_unref(USBDevice *dev, USBBus *bus, Error **errp)
> +{
> +    return qdev_realize_and_unref(&dev->qdev, &bus->qbus, errp);
> +}
> +
>  USBDevice *usb_create(USBBus *bus, const char *name)
>  {
>      DeviceState *dev;
> 

Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com>


Reply via email to