mirror of https://github.com/proxmox/mirror_qemu
usb: Allow overriding of usb_desc at the device level
This allows devices to present a different set of descriptors based on device properties. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>master
parent
be41efde3c
commit
386ab487eb
1
hw/usb.h
1
hw/usb.h
|
@ -230,6 +230,7 @@ struct USBDevice {
|
||||||
USBEndpoint ep_out[USB_MAX_ENDPOINTS];
|
USBEndpoint ep_out[USB_MAX_ENDPOINTS];
|
||||||
|
|
||||||
QLIST_HEAD(, USBDescString) strings;
|
QLIST_HEAD(, USBDescString) strings;
|
||||||
|
const USBDesc *usb_desc; /* Overrides class usb_desc if not NULL */
|
||||||
const USBDescDevice *device;
|
const USBDescDevice *device;
|
||||||
|
|
||||||
int configuration;
|
int configuration;
|
||||||
|
|
|
@ -166,6 +166,9 @@ const char *usb_device_get_product_desc(USBDevice *dev)
|
||||||
const USBDesc *usb_device_get_usb_desc(USBDevice *dev)
|
const USBDesc *usb_device_get_usb_desc(USBDevice *dev)
|
||||||
{
|
{
|
||||||
USBDeviceClass *klass = USB_DEVICE_GET_CLASS(dev);
|
USBDeviceClass *klass = USB_DEVICE_GET_CLASS(dev);
|
||||||
|
if (dev->usb_desc) {
|
||||||
|
return dev->usb_desc;
|
||||||
|
}
|
||||||
return klass->usb_desc;
|
return klass->usb_desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue