On 2018/1/29 18:37, Liu Hao wrote:
> The definitions of `struct _USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR`
> and `typedef struct
> _USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR` got moved
> upwards to match their original order in <usbspec.h> from Win10 SDK
>  10.0.16299.
> 

Sorry the second patch was dropped.

-- 
Best regards,
LH_Mouse
From 00bd46b279a58d01680f9ab4a9920ba85eec0533 Mon Sep 17 00:00:00 2001
From: Liu Hao <[email protected]>
Date: Mon, 29 Jan 2018 18:28:39 +0800
Subject: [PATCH 2/2] include/usbspec.h: Update to newest.

Signed-off-by: Liu Hao <[email protected]>
---
 mingw-w64-headers/include/usbspec.h | 233 +++++++++++++++++++++++++++++++-----
 1 file changed, 200 insertions(+), 33 deletions(-)

diff --git a/mingw-w64-headers/include/usbspec.h 
b/mingw-w64-headers/include/usbspec.h
index 86557d8d..4b1abf1f 100644
--- a/mingw-w64-headers/include/usbspec.h
+++ b/mingw-w64-headers/include/usbspec.h
@@ -44,7 +44,7 @@ typedef struct _USB_DEFAULT_PIPE_SETUP_PACKET {
     USHORT W;
   } wValue;
   union _wIndex {
-    struct {
+    __C89_NAMELESS struct {
       UCHAR LowByte;
       UCHAR HiByte;
     };
@@ -96,6 +96,7 @@ typedef struct _USB_DEFAULT_PIPE_SETUP_PACKET {
 #define USB_BOS_DESCRIPTOR_TYPE 0x0f
 #define USB_DEVICE_CAPABILITY_DESCRIPTOR_TYPE 0x10
 #define USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_TYPE 0x30
+#define USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR_TYPE 0x31
 
 #define USB_RESERVED_DESCRIPTOR_TYPE 0x06
 #define USB_CONFIG_POWER_DESCRIPTOR_TYPE 0x07
@@ -108,6 +109,21 @@ typedef struct _USB_DEFAULT_PIPE_SETUP_PACKET {
 #define USB_FEATURE_U1_ENABLE 0x30
 #define USB_FEATURE_U2_ENABLE 0x31
 #define USB_FEATURE_LTM_ENABLE 0x32
+#define USB_FEATURE_LDM_ENABLE 0x35
+
+#define USB_FEATURE_BATTERY_WAKE_MASK 0x28
+#define USB_FEATURE_OS_IS_PD_AWARE 0x29
+#define USB_FEATURE_POLICY_MODE 0x2A
+#define USB_FEATURE_CHARGING_POLICY 0x36
+
+#define USB_CHARGING_POLICY_DEFAULT 0x00
+#define USB_CHARGING_POLICY_ICCHPF 0x01
+#define USB_CHARGING_POLICY_ICCLPF 0x02
+#define USB_CHARGING_POLICY_NO_POWER 0x03
+
+#define USB_STATUS_PORT_STATUS 0x00
+#define USB_STATUS_PD_STATUS 0x01
+#define USB_STATUS_EXT_PORT_STATUS 0x02
 
 #define USB_GETSTATUS_SELF_POWERED 0x01
 #define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED 0x02
@@ -136,7 +152,6 @@ typedef union _USB_INTERFACE_STATUS {
     USHORT Reserved : 14;
   };
 } USB_INTERFACE_STATUS,*PUSB_INTERFACE_STATUS;
-;
 
 typedef union _USB_ENDPOINT_STATUS {
   USHORT AsUshort16;
@@ -184,6 +199,8 @@ typedef struct _USB_DEVICE_DESCRIPTOR {
 #define USB_DEVICE_CLASS_CONTENT_SECURITY 0x0d
 #define USB_DEVICE_CLASS_VIDEO 0x0e
 #define USB_DEVICE_CLASS_PERSONAL_HEALTHCARE 0x0f
+#define USB_DEVICE_CLASS_AUDIO_VIDEO 0x10
+#define USB_DEVICE_CLASS_BILLBOARD 0x11
 #define USB_DEVICE_CLASS_DIAGNOSTIC_DEVICE 0xdc
 #define USB_DEVICE_CLASS_WIRELESS_CONTROLLER 0xe0
 #define USB_DEVICE_CLASS_MISCELLANEOUS 0xef
@@ -213,6 +230,13 @@ typedef struct _USB_BOS_DESCRIPTOR {
 #define USB_DEVICE_CAPABILITY_USB20_EXTENSION 0x02
 #define USB_DEVICE_CAPABILITY_SUPERSPEED_USB 0x03
 #define USB_DEVICE_CAPABILITY_CONTAINER_ID 0x04
+#define USB_DEVICE_CAPABILITY_PLATFORM 0x05
+#define USB_DEVICE_CAPABILITY_POWER_DELIVERY 0x06
+#define USB_DEVICE_CAPABILITY_BATTERY_INFO 0x07
+#define USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT 0x08
+#define USB_DEVICE_CAPABILITY_PD_PROVIDER_PORT 0x09
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB 0x0A
+#define USB_DEVICE_CAPABILITY_PRECISION_TIME_MEASUREMENT 0x0B
 #define USB_DEVICE_CAPABILITY_BILLBOARD 0x0D
 
 typedef struct _USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR {
@@ -237,6 +261,59 @@ typedef struct 
_USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR {
 
 #define USB_DEVICE_CAPABILITY_USB20_EXTENSION_BMATTRIBUTES_RESERVED_MASK 
0xffff00e1
 
+typedef struct _USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR {
+  UCHAR bLength;
+  UCHAR bDescriptorType;
+  UCHAR bDevCapabilityType;
+  UCHAR bReserved;
+  union {
+    ULONG AsUlong;
+    __C89_NAMELESS struct {
+      ULONG Reserved1:1;
+      ULONG BatteryCharging:1;
+      ULONG USBPowerDelivery:1;
+      ULONG Provider:1;
+      ULONG Consumer:1;
+      ULONG ChargingPolicy:1;
+      ULONG TypeCCurrent:1;
+      ULONG Reserved2:1;
+      ULONG ACSupply:1;
+      ULONG Battery:1;
+      ULONG Other:1;
+      ULONG NumBatteries:3;
+      ULONG UsesVbus:1;
+      ULONG Reserved3:17;
+    };
+  } bmAttributes;
+  USHORT bmProviderPorts;
+  USHORT bmConsumerPorts;
+  USHORT bcdBCVersion;
+  USHORT bcdPDVersion;
+  USHORT bcdUSBTypeCVersion;
+} 
USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR,*PUSB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR;
+
+typedef struct _USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR {
+  UCHAR bLength;
+  UCHAR bDescriptorType;
+  UCHAR bDevCapabilityType;
+  UCHAR bReserved;
+  union {
+    USHORT AsUshort;
+    __C89_NAMELESS struct {
+        USHORT BatteryCharging:1;
+        USHORT USBPowerDelivery:1;
+        USHORT USBTypeCCurrent:1;
+        USHORT Reserved:13;
+    };
+  } bmCapabilities;
+  USHORT wMinVoltage;
+  USHORT wMaxVoltage;
+  USHORT wReserved;
+  ULONG dwMaxOperatingPower;
+  ULONG dwMaxPeakPower;
+  ULONG dwMaxPeakPowerTime;
+} 
USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR,*PUSB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR;
+
 typedef struct _USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR {
   UCHAR bLength;
   UCHAR bDescriptorType;
@@ -252,6 +329,10 @@ typedef struct 
_USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR {
 #define USB_DEVICE_CAPABILITY_SUPERSPEED_BMATTRIBUTES_LTM_CAPABLE 0x02
 
 #define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_RESERVED_MASK 0xfff0
+#define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_LOW 0x0001
+#define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_FULL 0x0002
+#define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_HIGH 0x0004
+#define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_SUPER 0x0008
 
 #define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_LOW 0x0001
 #define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_FULL 0x0002
@@ -259,11 +340,64 @@ typedef struct 
_USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR {
 #define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_SUPER 0x0008
 
 #define USB_DEVICE_CAPABILITY_SUPERSPEED_U1_DEVICE_EXIT_MAX_VALUE 0x0a
+
 #define USB_DEVICE_CAPABILITY_SUPERSPEED_U2_DEVICE_EXIT_MAX_VALUE 0x07ff
 
 #define USB_DEVICE_CAPABILITY_MAX_U1_LATENCY 0x0a
 #define USB_DEVICE_CAPABILITY_MAX_U2_LATENCY 0x07ff
 
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_BPS 0
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_KBPS 1
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_MBPS 2
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_GBPS 3
+
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_SYMMETRIC 0
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_ASYMMETRIC 1
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_RX 0
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_TX 1
+
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SS 0
+#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SSP 1
+
+typedef union _USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED {
+  ULONG AsUlong32;
+  __C89_NAMELESS struct {
+    ULONG SublinkSpeedAttrID:4;
+    ULONG LaneSpeedExponent:2;
+    ULONG SublinkTypeMode:1;
+    ULONG SublinkTypeDir:1;
+    ULONG Reserved:6;
+    ULONG LinkProtocol:2;
+    ULONG LaneSpeedMantissa:16;
+  };
+} 
USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED,*PUSB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED;
+
+typedef struct _USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR {
+  UCHAR bLength;
+  UCHAR bDescriptorType;
+  UCHAR bDevCapabilityType;
+  UCHAR bReserved;
+  union {
+    ULONG AsUlong;
+    __C89_NAMELESS struct {
+      ULONG SublinkSpeedAttrCount:5;
+      ULONG SublinkSpeedIDCount:4;
+      ULONG Reserved:23;
+    };
+  } bmAttributes;
+  union {
+    USHORT AsUshort;
+    __C89_NAMELESS struct {
+      USHORT SublinkSpeedAttrID:4;
+      USHORT Reserved:4;
+      USHORT MinRxLaneCount:4;
+      USHORT MinTxLaneCount:4;
+    };
+  } wFunctionalitySupport;
+  USHORT wReserved;
+  USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED bmSublinkSpeedAttr[1];
+} 
USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR,*PUSB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR;
+
 typedef struct _USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR {
   UCHAR bLength;
   UCHAR bDescriptorType;
@@ -272,6 +406,41 @@ typedef struct 
_USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR {
   UCHAR ContainerID[16];
 } 
USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR,*PUSB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR;
 
+typedef struct _USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR {
+  UCHAR bLength;
+  UCHAR bDescriptorType;
+  UCHAR bDevCapabilityType;
+  UCHAR bReserved;
+  GUID PlatformCapabilityUuid;
+  UCHAR CapabililityData[1];
+} 
USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR,*PUSB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR;
+
+typedef struct _USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR {
+  UCHAR bLength;
+  UCHAR bDescriptorType;
+  UCHAR bDevCapabilityType;
+  UCHAR iAddtionalInfoURL;
+  UCHAR bNumberOfAlternateModes;
+  UCHAR bPreferredAlternateMode;
+  union {
+    USHORT AsUshort;
+    __C89_NAMELESS struct {
+      USHORT VConnPowerNeededForFullFunctionality:3;
+      USHORT Reserved:12;
+      USHORT NoVconnPowerRequired:1;
+    };
+  } VconnPower;
+  UCHAR bmConfigured[32];
+  ULONG bReserved;
+  __C89_NAMELESS struct {
+    USHORT wSVID;
+    UCHAR bAlternateMode;
+    UCHAR iAlternateModeSetting;
+  } AlternateMode[1];
+} 
USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR,*PUSB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR;
+
+DEFINE_GUID(GUID_USB_MSOS20_PLATFORM_CAPABILITY_ID, 0xD8DD60DF, 0x4589, 
0x4CC7, 0x9C, 0xD2, 0x65, 0x9D, 0x9E, 0x64, 0x8A, 0x9F);
+
 typedef struct _USB_DEVICE_CAPABILITY_DESCRIPTOR {
   UCHAR bLength;
   UCHAR bDescriptorType;
@@ -409,6 +578,16 @@ typedef struct 
_USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR {
 
 #define USB_SUPERSPEED_ISOCHRONOUS_MAX_MULTIPLIER 2
 
+typedef struct _USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR {
+  UCHAR bLength;
+  UCHAR bDescriptorType;
+  USHORT wReserved;
+  ULONG dwBytesPerInterval;
+} 
USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR,*PUSB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR;
+
+#define USB_SUPERSPEEDPLUS_ISOCHRONOUS_MIN_BYTESPERINTERVAL 0xc001
+#define USB_SUPERSPEEDPLUS_ISOCHRONOUS_MAX_BYTESPERINTERVAL 0xffffff
+
 typedef struct _USB_HUB_DESCRIPTOR {
   UCHAR bDescriptorLength;
   UCHAR bDescriptorType;
@@ -565,6 +744,17 @@ typedef union _USB_PORT_CHANGE {
   USB_30_PORT_CHANGE Usb30PortChange;
 } USB_PORT_CHANGE,*PUSB_PORT_CHANGE;
 
+typedef union _USB_PORT_EXT_STATUS {
+  ULONG AsUlong32;
+  __C89_NAMELESS struct {
+    ULONG RxSublinkSpeedID:4;
+    ULONG TxSublinkSpeedID:4;
+    ULONG RxLaneCount:4;
+    ULONG TxLaneCount:4;
+    ULONG Reserved:16;
+  };
+} USB_PORT_EXT_STATUS,*PUSB_PORT_EXT_STATUS;
+
 typedef union _USB_PORT_STATUS_AND_CHANGE {
   ULONG AsUlong32;
   __C89_NAMELESS struct {
@@ -573,6 +763,14 @@ typedef union _USB_PORT_STATUS_AND_CHANGE {
   };
 } USB_PORT_STATUS_AND_CHANGE,*PUSB_PORT_STATUS_AND_CHANGE;
 
+typedef union _USB_PORT_EXT_STATUS_AND_CHANGE {
+  ULONG64 AsUlong64;
+  __C89_NAMELESS struct {
+    USB_PORT_STATUS_AND_CHANGE PortStatusChange;
+    USB_PORT_EXT_STATUS PortExtStatus;
+  };
+} USB_PORT_EXT_STATUS_AND_CHANGE,*PUSB_PORT_EXT_STATUS_AND_CHANGE;
+
 typedef union _USB_HUB_30_PORT_REMOTE_WAKE_MASK {
   UCHAR AsUchar8;
   __C89_NAMELESS struct {
@@ -635,37 +833,6 @@ typedef struct _USB_INTERFACE_POWER_DESCRIPTOR {
   USHORT TransitionTimeFromD3;
 } USB_INTERFACE_POWER_DESCRIPTOR,*PUSB_INTERFACE_POWER_DESCRIPTOR;
 
-typedef struct _USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR {
-  UCHAR bLength;
-  UCHAR bDescriptorType;
-  UCHAR bDevCapabilityType;
-  UCHAR iAddtionalInfoURL;
-  UCHAR bNumberOfAlternateModes;
-  UCHAR bPreferredAlternateMode;
-  union {
-    USHORT AsUshort;
-    struct {
-      USHORT VConnPowerNeededForFullFunctionality:3;
-      USHORT Reserved:12;
-      USHORT NoVconnPowerRequired:1;
-    };
-  } VconnPower;
-  UCHAR bmConfigured[32];
-  ULONG bReserved;
-  struct {
-    USHORT wSVID;
-    UCHAR bAlternateMode;
-    UCHAR iAlternateModeSetting;
-  } AlternateMode[1];
-} 
USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR,*PUSB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR;
-
-typedef struct _USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR {
-  UCHAR bLength;
-  UCHAR bDescriptorType;
-  USHORT wReserved;
-  ULONG dwBytesPerInterval;
-} 
USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR,*PUSB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR;
-
 #include <poppack.h>
 
 #endif
-- 
2.16.1

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to