usb-bot: hotplug support
This patch marks usb-bot as hot-pluggable device, makes attached
property settable and turns off auto-attach in case the device
was hotplugged.
Hot-plugging a usb-bot device with one or more scsi devices can be
done this way now:
  (1) device-add usb-bot,id=foo
  (2) device-add scsi-{hd,cd},bus=foo.0,lun=0
  (2b) optionally add more devices (luns 0 ... 15).
  (3) qom-set foo.attached = true
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1465984019-28963-5-git-send-email-kraxel@redhat.com
			
			
This commit is contained in:
		
							parent
							
								
									1e351dc373
								
							
						
					
					
						commit
						b78ecd0998
					
				| 
						 | 
				
			
			@ -634,9 +634,14 @@ static void usb_msd_realize_storage(USBDevice *dev, Error **errp)
 | 
			
		|||
static void usb_msd_realize_bot(USBDevice *dev, Error **errp)
 | 
			
		||||
{
 | 
			
		||||
    MSDState *s = USB_STORAGE_DEV(dev);
 | 
			
		||||
    DeviceState *d = DEVICE(dev);
 | 
			
		||||
 | 
			
		||||
    usb_desc_create_serial(dev);
 | 
			
		||||
    usb_desc_init(dev);
 | 
			
		||||
    if (d->hotplugged) {
 | 
			
		||||
        s->dev.auto_attach = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    scsi_bus_new(&s->bus, sizeof(s->bus), DEVICE(dev),
 | 
			
		||||
                 &usb_msd_scsi_info_bot, NULL);
 | 
			
		||||
    usb_msd_handle_reset(dev);
 | 
			
		||||
| 
						 | 
				
			
			@ -806,10 +811,9 @@ static void usb_msd_instance_init(Object *obj)
 | 
			
		|||
static void usb_msd_class_initfn_bot(ObjectClass *klass, void *data)
 | 
			
		||||
{
 | 
			
		||||
    USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
 | 
			
		||||
    DeviceClass *dc = DEVICE_CLASS(klass);
 | 
			
		||||
 | 
			
		||||
    uc->realize = usb_msd_realize_bot;
 | 
			
		||||
    dc->hotpluggable = false;
 | 
			
		||||
    uc->attached_settable = true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const TypeInfo msd_info = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue