Commit 5f577854 authored by Dean Camera's avatar Dean Camera
Browse files

Add missing const qualifier to the parameters of the USB_GetNextDescriptorComp() function.

Reduce spacing of the structure elements in StdDescriptors.h to make the code more readable.
parent f9bcac5e
...@@ -114,7 +114,7 @@ void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem, ...@@ -114,7 +114,7 @@ void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem,
USB_GetNextDescriptorOfType(BytesRem, CurrConfigLoc, Type); USB_GetNextDescriptorOfType(BytesRem, CurrConfigLoc, Type);
} }
uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, void** const CurrConfigLoc, ConfigComparatorPtr_t const ComparatorRoutine) uint8_t USB_GetNextDescriptorComp(uint16_t* const BytesRem, void** const CurrConfigLoc, ConfigComparatorPtr_t const ComparatorRoutine)
{ {
uint8_t ErrorCode; uint8_t ErrorCode;
......
...@@ -254,7 +254,7 @@ ...@@ -254,7 +254,7 @@
* } * }
* \endcode * \endcode
*/ */
uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, void** const CurrConfigLoc, ConfigComparatorPtr_t const ComparatorRoutine); uint8_t USB_GetNextDescriptorComp(uint16_t* const BytesRem, void** const CurrConfigLoc, ConfigComparatorPtr_t const ComparatorRoutine);
/* Inline Functions: */ /* Inline Functions: */
/** Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then /** Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then
......
...@@ -223,10 +223,10 @@ ...@@ -223,10 +223,10 @@
*/ */
typedef struct typedef struct
{ {
uint8_t Size; /**< Size of the descriptor, in bytes. */ uint8_t Size; /**< Size of the descriptor, in bytes. */
uint8_t Type; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value uint8_t Type; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
* given by the specific class. * given by the specific class.
*/ */
} USB_Descriptor_Header_t; } USB_Descriptor_Header_t;
/** \brief Standard USB Descriptor Header (USB-IF naming conventions). /** \brief Standard USB Descriptor Header (USB-IF naming conventions).
...@@ -238,10 +238,10 @@ ...@@ -238,10 +238,10 @@
*/ */
typedef struct typedef struct
{ {
uint8_t bLength; /**< Size of the descriptor, in bytes. */ uint8_t bLength; /**< Size of the descriptor, in bytes. */
uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
* given by the specific class. * given by the specific class.
*/ */
} USB_StdDescriptor_Header_t; } USB_StdDescriptor_Header_t;
/** \brief Standard USB Device Descriptor (LUFA naming conventions). /** \brief Standard USB Device Descriptor (LUFA naming conventions).
...@@ -255,42 +255,42 @@ ...@@ -255,42 +255,42 @@
{ {
USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */ USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */
uint16_t USBSpecification; /**< BCD of the supported USB specification. */ uint16_t USBSpecification; /**< BCD of the supported USB specification. */
uint8_t Class; /**< USB device class. */ uint8_t Class; /**< USB device class. */
uint8_t SubClass; /**< USB device subclass. */ uint8_t SubClass; /**< USB device subclass. */
uint8_t Protocol; /**< USB device protocol. */ uint8_t Protocol; /**< USB device protocol. */
uint8_t Endpoint0Size; /**< Size of the control (address 0) endpoint's bank in bytes. */ uint8_t Endpoint0Size; /**< Size of the control (address 0) endpoint's bank in bytes. */
uint16_t VendorID; /**< Vendor ID for the USB product. */ uint16_t VendorID; /**< Vendor ID for the USB product. */
uint16_t ProductID; /**< Unique product ID for the USB product. */ uint16_t ProductID; /**< Unique product ID for the USB product. */
uint16_t ReleaseNumber; /**< Product release (version) number. */ uint16_t ReleaseNumber; /**< Product release (version) number. */
uint8_t ManufacturerStrIndex; /**< String index for the manufacturer's name. The uint8_t ManufacturerStrIndex; /**< String index for the manufacturer's name. The
* host will request this string via a separate * host will request this string via a separate
* control request for the string descriptor. * control request for the string descriptor.
*
* \note If no string supplied, use \ref NO_DESCRIPTOR.
*/
uint8_t ProductStrIndex; /**< String index for the product name/details.
*
* \see ManufacturerStrIndex structure entry.
*/
uint8_t SerialNumStrIndex; /**< String index for the product's globally unique hexadecimal
* serial number, in uppercase Unicode ASCII.
* *
* \note On some AVR models, there is an embedded serial number * \note If no string supplied, use \ref NO_DESCRIPTOR.
* in the chip which can be used for the device serial number.
* To use this serial number, set this to USE_INTERNAL_SERIAL.
* On unsupported devices, this will evaluate to 0 and will cause
* the host to generate a pseudo-unique value for the device upon
* insertion.
*
* \see ManufacturerStrIndex structure entry.
*/ */
uint8_t NumberOfConfigurations; /**< Total number of configurations supported by uint8_t ProductStrIndex; /**< String index for the product name/details.
* the device. *
*/ * \see ManufacturerStrIndex structure entry.
*/
uint8_t SerialNumStrIndex; /**< String index for the product's globally unique hexadecimal
* serial number, in uppercase Unicode ASCII.
*
* \note On some AVR models, there is an embedded serial number
* in the chip which can be used for the device serial number.
* To use this serial number, set this to USE_INTERNAL_SERIAL.
* On unsupported devices, this will evaluate to 0 and will cause
* the host to generate a pseudo-unique value for the device upon
* insertion.
*
* \see ManufacturerStrIndex structure entry.
*/
uint8_t NumberOfConfigurations; /**< Total number of configurations supported by
* the device.
*/
} USB_Descriptor_Device_t; } USB_Descriptor_Device_t;
/** \brief Standard USB Device Descriptor (USB-IF naming conventions). /** \brief Standard USB Device Descriptor (USB-IF naming conventions).
...@@ -302,43 +302,43 @@ ...@@ -302,43 +302,43 @@
*/ */
typedef struct typedef struct
{ {
uint8_t bLength; /**< Size of the descriptor, in bytes. */ uint8_t bLength; /**< Size of the descriptor, in bytes. */
uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
* given by the specific class. * given by the specific class.
*/ */
uint16_t bcdUSB; /**< BCD of the supported USB specification. */ uint16_t bcdUSB; /**< BCD of the supported USB specification. */
uint8_t bDeviceClass; /**< USB device class. */ uint8_t bDeviceClass; /**< USB device class. */
uint8_t bDeviceSubClass; /**< USB device subclass. */ uint8_t bDeviceSubClass; /**< USB device subclass. */
uint8_t bDeviceProtocol; /**< USB device protocol. */ uint8_t bDeviceProtocol; /**< USB device protocol. */
uint8_t bMaxPacketSize0; /**< Size of the control (address 0) endpoint's bank in bytes. */ uint8_t bMaxPacketSize0; /**< Size of the control (address 0) endpoint's bank in bytes. */
uint16_t idVendor; /**< Vendor ID for the USB product. */ uint16_t idVendor; /**< Vendor ID for the USB product. */
uint16_t idProduct; /**< Unique product ID for the USB product. */ uint16_t idProduct; /**< Unique product ID for the USB product. */
uint16_t bcdDevice; /**< Product release (version) number. */ uint16_t bcdDevice; /**< Product release (version) number. */
uint8_t iManufacturer; /**< String index for the manufacturer's name. The uint8_t iManufacturer; /**< String index for the manufacturer's name. The
* host will request this string via a separate * host will request this string via a separate
* control request for the string descriptor. * control request for the string descriptor.
* *
* \note If no string supplied, use \ref NO_DESCRIPTOR. * \note If no string supplied, use \ref NO_DESCRIPTOR.
*/ */
uint8_t iProduct; /**< String index for the product name/details. uint8_t iProduct; /**< String index for the product name/details.
* *
* \see ManufacturerStrIndex structure entry. * \see ManufacturerStrIndex structure entry.
*/ */
uint8_t iSerialNumber; /**< String index for the product's globally unique hexadecimal uint8_t iSerialNumber; /**< String index for the product's globally unique hexadecimal
* serial number, in uppercase Unicode ASCII. * serial number, in uppercase Unicode ASCII.
* *
* \note On some AVR models, there is an embedded serial number * \note On some AVR models, there is an embedded serial number
* in the chip which can be used for the device serial number. * in the chip which can be used for the device serial number.
* To use this serial number, set this to USE_INTERNAL_SERIAL. * To use this serial number, set this to USE_INTERNAL_SERIAL.
* On unsupported devices, this will evaluate to 0 and will cause * On unsupported devices, this will evaluate to 0 and will cause
* the host to generate a pseudo-unique value for the device upon * the host to generate a pseudo-unique value for the device upon
* insertion. * insertion.
* *
* \see ManufacturerStrIndex structure entry. * \see ManufacturerStrIndex structure entry.
*/ */
uint8_t bNumConfigurations; /**< Total number of configurations supported by uint8_t bNumConfigurations; /**< Total number of configurations supported by
* the device. * the device.
*/ */
} USB_StdDescriptor_Device_t; } USB_StdDescriptor_Device_t;
/** \brief Standard USB Configuration Descriptor (LUFA naming conventions). /** \brief Standard USB Configuration Descriptor (LUFA naming conventions).
...@@ -352,22 +352,22 @@ ...@@ -352,22 +352,22 @@
{ {
USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */ USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */
uint16_t TotalConfigurationSize; /**< Size of the configuration descriptor header, uint16_t TotalConfigurationSize; /**< Size of the configuration descriptor header,
* and all sub descriptors inside the configuration. * and all sub descriptors inside the configuration.
*/ */
uint8_t TotalInterfaces; /**< Total number of interfaces in the configuration. */ uint8_t TotalInterfaces; /**< Total number of interfaces in the configuration. */
uint8_t ConfigurationNumber; /**< Configuration index of the current configuration. */ uint8_t ConfigurationNumber; /**< Configuration index of the current configuration. */
uint8_t ConfigurationStrIndex; /**< Index of a string descriptor describing the configuration. */ uint8_t ConfigurationStrIndex; /**< Index of a string descriptor describing the configuration. */
uint8_t ConfigAttributes; /**< Configuration attributes, comprised of a mask of zero or uint8_t ConfigAttributes; /**< Configuration attributes, comprised of a mask of zero or
* more USB_CONFIG_ATTR_* masks. * more USB_CONFIG_ATTR_* masks.
*/ */
uint8_t MaxPowerConsumption; /**< Maximum power consumption of the device while in the uint8_t MaxPowerConsumption; /**< Maximum power consumption of the device while in the
* current configuration, calculated by the \ref USB_CONFIG_POWER_MA() * current configuration, calculated by the \ref USB_CONFIG_POWER_MA()
* macro. * macro.
*/ */
} USB_Descriptor_Configuration_Header_t; } USB_Descriptor_Configuration_Header_t;
/** \brief Standard USB Configuration Descriptor (USB-IF naming conventions). /** \brief Standard USB Configuration Descriptor (USB-IF naming conventions).
...@@ -379,23 +379,23 @@ ...@@ -379,23 +379,23 @@
*/ */
typedef struct typedef struct
{ {
uint8_t bLength; /**< Size of the descriptor, in bytes. */ uint8_t bLength; /**< Size of the descriptor, in bytes. */
uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
* given by the specific class. * given by the specific class.
*/ */
uint16_t wTotalLength; /**< Size of the configuration descriptor header, uint16_t wTotalLength; /**< Size of the configuration descriptor header,
* and all sub descriptors inside the configuration. * and all sub descriptors inside the configuration.
*/ */
uint8_t bNumInterfaces; /**< Total number of interfaces in the configuration. */ uint8_t bNumInterfaces; /**< Total number of interfaces in the configuration. */
uint8_t bConfigurationValue; /**< Configuration index of the current configuration. */ uint8_t bConfigurationValue; /**< Configuration index of the current configuration. */
uint8_t iConfiguration; /**< Index of a string descriptor describing the configuration. */ uint8_t iConfiguration; /**< Index of a string descriptor describing the configuration. */
uint8_t bmAttributes; /**< Configuration attributes, comprised of a mask of zero or uint8_t bmAttributes; /**< Configuration attributes, comprised of a mask of zero or
* more USB_CONFIG_ATTR_* masks. * more USB_CONFIG_ATTR_* masks.
*/
uint8_t bMaxPower; /**< Maximum power consumption of the device while in the
* current configuration, calculated by the \ref USB_CONFIG_POWER_MA()
* macro.
*/ */
uint8_t bMaxPower; /**< Maximum power consumption of the device while in the
* current configuration, calculated by the \ref USB_CONFIG_POWER_MA()
* macro.
*/
} USB_StdDescriptor_Configuration_Header_t; } USB_StdDescriptor_Configuration_Header_t;
/** \brief Standard USB Interface Descriptor (LUFA naming conventions). /** \brief Standard USB Interface Descriptor (LUFA naming conventions).
...@@ -409,21 +409,19 @@ ...@@ -409,21 +409,19 @@
{ {
USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */ USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */
uint8_t InterfaceNumber; /**< Index of the interface in the current configuration. */ uint8_t InterfaceNumber; /**< Index of the interface in the current configuration. */
uint8_t AlternateSetting; /**< Alternate setting for the interface number. The same uint8_t AlternateSetting; /**< Alternate setting for the interface number. The same
* interface number can have multiple alternate settings * interface number can have multiple alternate settings
* with different endpoint configurations, which can be * with different endpoint configurations, which can be
* selected by the host. * selected by the host.
*/ */
uint8_t TotalEndpoints; /**< Total number of endpoints in the interface. */ uint8_t TotalEndpoints; /**< Total number of endpoints in the interface. */
uint8_t Class; /**< Interface class ID. */ uint8_t Class; /**< Interface class ID. */
uint8_t SubClass; /**< Interface subclass ID. */ uint8_t SubClass; /**< Interface subclass ID. */
uint8_t Protocol; /**< Interface protocol ID. */ uint8_t Protocol; /**< Interface protocol ID. */
uint8_t InterfaceStrIndex; /**< Index of the string descriptor describing the uint8_t InterfaceStrIndex; /**< Index of the string descriptor describing the interface. */
* interface.
*/
} USB_Descriptor_Interface_t; } USB_Descriptor_Interface_t;
/** \brief Standard USB Interface Descriptor (USB-IF naming conventions). /** \brief Standard USB Interface Descriptor (USB-IF naming conventions).
...@@ -435,23 +433,23 @@ ...@@ -435,23 +433,23 @@
*/ */
typedef struct typedef struct
{ {
uint8_t bLength; /**< Size of the descriptor, in bytes. */ uint8_t bLength; /**< Size of the descriptor, in bytes. */
uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
* given by the specific class. * given by the specific class.
*/ */
uint8_t bInterfaceNumber; /**< Index of the interface in the current configuration. */ uint8_t bInterfaceNumber; /**< Index of the interface in the current configuration. */
uint8_t bAlternateSetting; /**< Alternate setting for the interface number. The same uint8_t bAlternateSetting; /**< Alternate setting for the interface number. The same
* interface number can have multiple alternate settings * interface number can have multiple alternate settings
* with different endpoint configurations, which can be * with different endpoint configurations, which can be
* selected by the host. * selected by the host.
*/ */
uint8_t bNumEndpoints; /**< Total number of endpoints in the interface. */ uint8_t bNumEndpoints; /**< Total number of endpoints in the interface. */
uint8_t bInterfaceClass; /**< Interface class ID. */ uint8_t bInterfaceClass; /**< Interface class ID. */
uint8_t bInterfaceSubClass; /**< Interface subclass ID. */ uint8_t bInterfaceSubClass; /**< Interface subclass ID. */
uint8_t bInterfaceProtocol; /**< Interface protocol ID. */ uint8_t bInterfaceProtocol; /**< Interface protocol ID. */
uint8_t iInterface; /**< Index of the string descriptor describing the uint8_t iInterface; /**< Index of the string descriptor describing the
* interface. * interface.
*/ */
} USB_StdDescriptor_Interface_t; } USB_StdDescriptor_Interface_t;
/** \brief Standard USB Interface Association Descriptor (LUFA naming conventions). /** \brief Standard USB Interface Association Descriptor (LUFA naming conventions).
...@@ -471,16 +469,16 @@ ...@@ -471,16 +469,16 @@
{ {
USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */ USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */
uint8_t FirstInterfaceIndex; /**< Index of the first associated interface. */ uint8_t FirstInterfaceIndex; /**< Index of the first associated interface. */
uint8_t TotalInterfaces; /**< Total number of associated interfaces. */ uint8_t TotalInterfaces; /**< Total number of associated interfaces. */
uint8_t Class; /**< Interface class ID. */ uint8_t Class; /**< Interface class ID. */
uint8_t SubClass; /**< Interface subclass ID. */ uint8_t SubClass; /**< Interface subclass ID. */
uint8_t Protocol; /**< Interface protocol ID. */ uint8_t Protocol; /**< Interface protocol ID. */
uint8_t IADStrIndex; /**< Index of the string descriptor describing the uint8_t IADStrIndex; /**< Index of the string descriptor describing the
* interface association. * interface association.
*/ */
} USB_Descriptor_Interface_Association_t; } USB_Descriptor_Interface_Association_t;
/** \brief Standard USB Interface Association Descriptor (USB-IF naming conventions). /** \brief Standard USB Interface Association Descriptor (USB-IF naming conventions).
...@@ -499,18 +497,18 @@ ...@@ -499,18 +497,18 @@
*/ */
typedef struct typedef struct
{ {
uint8_t bLength; /**< Size of the descriptor, in bytes. */ uint8_t bLength; /**< Size of the descriptor, in bytes. */
uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
* given by the specific class. * given by the specific class.
*/ */
uint8_t bFirstInterface; /**< Index of the first associated interface. */ uint8_t bFirstInterface; /**< Index of the first associated interface. */
uint8_t bInterfaceCount; /**< Total number of associated interfaces. */ uint8_t bInterfaceCount; /**< Total number of associated interfaces. */
uint8_t bFunctionClass; /**< Interface class ID. */ uint8_t bFunctionClass; /**< Interface class ID. */
uint8_t bFunctionSubClass; /**< Interface subclass ID. */ uint8_t bFunctionSubClass; /**< Interface subclass ID. */
uint8_t bFunctionProtocol; /**< Interface protocol ID. */ uint8_t bFunctionProtocol; /**< Interface protocol ID. */
uint8_t iFunction; /**< Index of the string descriptor describing the uint8_t iFunction; /**< Index of the string descriptor describing the
* interface association. * interface association.
*/ */
} USB_StdDescriptor_Interface_Association_t; } USB_StdDescriptor_Interface_Association_t;
/** \brief Standard USB Endpoint Descriptor (LUFA naming conventions). /** \brief Standard USB Endpoint Descriptor (LUFA naming conventions).
...@@ -524,21 +522,18 @@ ...@@ -524,21 +522,18 @@
{ {
USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */ USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */
uint8_t EndpointAddress; /**< Logical address of the endpoint within the device uint8_t EndpointAddress; /**< Logical address of the endpoint within the device for the current
* for the current configuration, including direction * configuration, including direction mask.
* mask.
*/
uint8_t Attributes; /**< Endpoint attributes, comprised of a mask of the
* endpoint type (EP_TYPE_*) and attributes (ENDPOINT_ATTR_*)
* masks.
*/
uint16_t EndpointSize; /**< Size of the endpoint bank, in bytes. This indicates the
* maximum packet size that the endpoint can receive at a time.
*/ */
uint8_t Attributes; /**< Endpoint attributes, comprised of a mask of the endpoint type (EP_TYPE_*)
uint8_t PollingIntervalMS; /**< Polling interval in milliseconds for the endpoint * and attributes (ENDPOINT_ATTR_*) masks.
* if it is an INTERRUPT or ISOCHRONOUS type. */
*/ uint16_t EndpointSize; /**< Size of the endpoint bank, in bytes. This indicates the maximum packet
* size that the endpoint can receive at a time.
*/
uint8_t PollingIntervalMS; /**< Polling interval in milliseconds for the endpoint if it is an INTERRUPT
* or ISOCHRONOUS type.
*/
} USB_Descriptor_Endpoint_t; } USB_Descriptor_Endpoint_t;
/** \brief Standard USB Endpoint Descriptor (USB-IF naming conventions). /** \brief Standard USB Endpoint Descriptor (USB-IF naming conventions).
...@@ -551,24 +546,22 @@ ...@@ -551,24 +546,22 @@
*/ */
typedef struct typedef struct
{ {
uint8_t bLength; /**< Size of the descriptor, in bytes. */ uint8_t bLength; /**< Size of the descriptor, in bytes. */
uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a
* given by the specific class. * value given by the specific class.
*/
uint8_t bEndpointAddress; /**< Logical address of the endpoint within the device
* for the current configuration, including direction
* mask.
*/
uint8_t bmAttributes; /**< Endpoint attributes, comprised of a mask of the
* endpoint type (EP_TYPE_*) and attributes (ENDPOINT_ATTR_*)
* masks.
*/ */
uint16_t wMaxPacketSize; /**< Size of the endpoint bank, in bytes. This indicates the uint8_t bEndpointAddress; /**< Logical address of the endpoint within the device for the current
* maximum packet size that the endpoint can receive at a time. * configuration, including direction mask.
*/ */
uint8_t bInterval; /**< Polling interval in milliseconds for the endpoint uint8_t bmAttributes; /**< Endpoint attributes, comprised of a mask of the endpoint type (EP_TYPE_*)
* if it is an INTERRUPT or ISOCHRONOUS type. * and attributes (ENDPOINT_ATTR_*) masks.
*/ */
uint16_t wMaxPacketSize; /**< Size of the endpoint bank, in bytes. This indicates the maximum packet size
* that the endpoint can receive at a time.
*/
uint8_t bInterval; /**< Polling interval in milliseconds for the endpoint if it is an INTERRUPT or
* ISOCHRONOUS type.
*/
} USB_StdDescriptor_Endpoint_t; } USB_StdDescriptor_Endpoint_t;
/** \brief Standard USB String Descriptor (LUFA naming conventions). /** \brief Standard USB String Descriptor (LUFA naming conventions).
...@@ -588,17 +581,17 @@ ...@@ -588,17 +581,17 @@
{ {
USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */ USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */
wchar_t UnicodeString[]; /**< String data, as unicode characters (alternatively, wchar_t UnicodeString[]; /**< String data, as unicode characters (alternatively,
* string language IDs). If normal ASCII characters are * string language IDs). If normal ASCII characters are
* to be used, they must be added as an array of characters * to be used, they must be added as an array of characters
* rather than a normal C string so that they are widened to * rather than a normal C string so that they are widened to
* Unicode size. * Unicode size.
* *
* Under GCC, strings prefixed with the "L" character (before * Under GCC, strings prefixed with the "L" character (before
* the opening string quotation mark) are considered to be * the opening string quotation mark) are considered to be
* Unicode strings, and may be used instead of an explicit * Unicode strings, and may be used instead of an explicit
* array of ASCII characters. * array of ASCII characters.
*/ */
} USB_Descriptor_String_t; } USB_Descriptor_String_t;
/** \brief Standard USB String Descriptor (USB-IF naming conventions). /** \brief Standard USB String Descriptor (USB-IF naming conventions).
...@@ -617,22 +610,19 @@ ...@@ -617,22 +610,19 @@
*/ */
typedef struct typedef struct
{ {
uint8_t bLength; /**< Size of the descriptor, in bytes. */ uint8_t bLength; /**< Size of the descriptor, in bytes. */
uint8_t bDescriptorType; /**< Type of the descriptor, either a value in uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t
* \ref USB_DescriptorTypes_t or a value * or a value given by the specific class.
* given by the specific class. */
*/ int16_t bString[]; /**< String data, as unicode characters (alternatively, string language IDs).
int16_t bString[]; /**< String data, as unicode characters (alternatively, * If normal ASCII characters are to be used, they must be added as an array
* string language IDs). If normal ASCII characters are * of characters rather than a normal C string so that they are widened to
* to be used, they must be added as an array of characters * Unicode size.
* rather than a normal C string so that they are widened to *
* Unicode size. * Under GCC, strings prefixed with the "L" character (before the opening string
* * quotation mark) are considered to be Unicode strings, and may be used instead
* Under GCC, strings prefixed with the "L" character (before * of an explicit array of ASCII characters.
* the opening string quotation mark) are considered to be */
* Unicode strings, and may be used instead of an explicit
* array of ASCII characters.
*/
} USB_StdDescriptor_String_t; } USB_StdDescriptor_String_t;
/* Private Interface - For use in library only: */ /* Private Interface - For use in library only: */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment