16 #ifndef EM_USBXPRESS_DESCRIPTORS_H
17 #define EM_USBXPRESS_DESCRIPTORS_H
30 #define USB_VENDOR_ID USB_VENDOR_ID_SILICON_LABS
31 #define USB_PRODUCT_ID 0x0000
34 #define USBXPRESS_IFC_NUMBER 0
36 #define USBXPRESS_SETUP_EP_ADDR 0x00
37 #define USBXPRESS_IN_EP_ADDR 0x81
38 #define USBXPRESS_OUT_EP_ADDR 0x01
44 #define FEATURE_GENRE 1
45 #define FEATURE_EXTENDED_COMPATIBILITY_ID 4
46 #define FEATURE_EXTENDED_PROPERTIES_ID 5
48 #define EXT_COMP_DESC_SIZE sizeof(USB_ExtendedCompatIdOsFeatureDesc_t)
51 #define EXT_COMP_VENDOR_CODE 1
53 #define NUM_IFCS_WITH_EXT_COMPAT 1
60 #define EXTENDED_PROPERTY_TYPE_REG_SZ 1
61 #define EXTENDED_PROPERTY_TYPE_REG_EXPAND_SZ 2
62 #define EXTENDED_PROPERTY_TYPE_REG_BINARY 3
64 #define EXTENDED_PROPERTY_TYPE_REG_DWORD_LITTLE_ENDIAN 4
65 #define EXTENDED_PROPERTY_TYPE_REG_DWORD_BIG_ENDIAN 5
66 #define EXTENDED_PROPERTY_TYPE_REG_LINK 6
67 #define EXTENDED_PROPERTY_TYPE_MULTI_SZ 7
70 #define GUID_PROPERTY_NAME_LEN sizeof ("DeviceInterfaceGUIDs") * 2
74 #define GUID_PROPERTY_NAME \
100 #define GUID_PROPERTY_LEN (sizeof("{3C5E1462-5695-4e18-876B-F3F3D08AAF18}\0") * 2)
103 #define GUID_PROPERTY \
148 #define GUID_PROPERTY_DESCRIPTOR_SIZE (14 + GUID_PROPERTY_NAME_LEN + GUID_PROPERTY_LEN)
151 #define PROPERTIES_DESCRIPTOR_SIZE (10 + GUID_PROPERTY_DESCRIPTOR_SIZE)
163 char compatibleID[8];
164 char subCompatibleID[8];
165 uint8_t reserved2[6];
178 uint8_t reserved1[7];
180 const USB_CompatFunctionDesc_t
211 extern const uint8_t USBXCORE_microsoftOsDesc[];
212 extern const USB_ExtendedCompatIdOsFeatureDesc_t
213 USBXCORE_extendedCompatIdOsFeatureDesc;
214 extern const USB_ExtendedPropertiesDescriptor_t USBXCORE_extendedPropertiesDesc;
221 #endif // EM_USBXPRESS_DESCRIPTORS_H
const uint8_t USBXCORE_configDescInit[]
USB Configuration Descriptor.
#define SL_PACK_END()
Macro for handling packed structs. Use this macro after the struct definition. With GCC...
const uint8_t USBXCORE_stringLangDesc[]
USB Language String Descriptor.
Extended Properties Descriptor Typedef.
uint32_t propertyDataType
Data type of this property.
const uint8_t USBXCORE_buffMult[]
USB Buffer Multiplier.
#define GUID_PROPERTY_NAME_LEN
Length of GUID Property Name.
#define SL_PACK_START(x)
Macro for handling packed structs. Use this macro before the struct definition. X denotes the max...
uint8_t firstInterfaceNumber
uint16_t count
Number of properties.
uint32_t wLength
Size of this struct.
uint16_t bcdVersion
1.00 -> 0x0100
Compatible ID Function Descriptor Typedef.
#define GUID_PROPERTY_LEN
Length of GUID Property.
uint32_t length
Size of this struct = 16 + bCount*24.
uint16_t index
0x05 for extended property
#define SL_ATTRIBUTE_PACKED
GCC style macro for handling packed structs.
uint16_t propertyNameLength
Length of the name of this property.
#define NUM_IFCS_WITH_EXT_COMPAT
Number of interfaces with extended compatibility descriptors.
uint32_t propertyDataLength
Length the property data.
uint16_t bcdVersion
1.00 -> 0x0100
Compatible ID Feature Descriptor Typedef.
uint32_t size2
Size of this property descriptor.