usb: add CompatibleID support to msos
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 18 Mar 2014 10:01:50 +0000 (11:01 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 22 Apr 2014 10:40:57 +0000 (12:40 +0200)
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/desc-msos.c
hw/usb/desc.h

index ed8d62c..334d1ae 100644 (file)
@@ -44,7 +44,7 @@ typedef struct msos_compat_hdr {
 typedef struct msos_compat_func {
     uint8_t  bFirstInterfaceNumber;
     uint8_t  reserved_1;
-    uint8_t  compatibleId[8];
+    char     compatibleId[8];
     uint8_t  subCompatibleId[8];
     uint8_t  reserved_2[6];
 } QEMU_PACKED msos_compat_func;
@@ -59,6 +59,10 @@ static int usb_desc_msos_compat(const USBDesc *desc, uint8_t *dest)
     func = (void *)(dest + length);
     func->bFirstInterfaceNumber = 0;
     func->reserved_1 = 0x01;
+    if (desc->msos->CompatibleID) {
+        snprintf(func->compatibleId, sizeof(func->compatibleId),
+                 "%s", desc->msos->CompatibleID);
+    }
     length += sizeof(*func);
     count++;
 
index 2b4fcda..8e8db03 100644 (file)
@@ -184,6 +184,7 @@ struct USBDescOther {
 };
 
 struct USBDescMSOS {
+    const char                *CompatibleID;
     const wchar_t             *Label;
     bool                      SelectiveSuspendEnabled;
 };