Minor documentation enhancements.
[pub/USBasp.git] / LUFA / Drivers / USB / HighLevel / StdDescriptors.h
index 1798365..00b60c3 100644 (file)
@@ -52,6 +52,7 @@
        /* Includes: */
                #include <avr/pgmspace.h>
                #include <stdbool.h>
+               #include <stdint.h>
                #include <stddef.h>
 
                #include "../../../Common/Common.h"
@@ -98,7 +99,7 @@
                                #define USE_INTERNAL_SERIAL           NO_DESCRIPTOR
                        #endif
                        
-                       /** Macro to calculate the power value for the configuration descriptor, from a given number of milliamps. */
+                       /** Macro to calculate the power value for the configuration descriptor, from a given number of milliamperes. */
                        #define USB_CONFIG_POWER_MA(mA)           ((mA) >> 1)
 
                        /** Macro to calculate the Unicode length of a string with a given number of Unicode characters.
                         *  \see The USB specification for more details on the possible Endpoint usage attributes.
                         */
                        #define ENDPOINT_USAGE_IMPLICIT_FEEDBACK  (2 << 4)
-
+                       
                /* Enums: */
                        /** Enum for the possible standard descriptor types, as given in each descriptor's header. */
                        enum USB_DescriptorTypes_t
                                DTYPE_Other                = 0x07, /**< Indicates that the descriptor is of other type. */
                                DTYPE_InterfacePower       = 0x08, /**< Indicates that the descriptor is an interface power descriptor. */
                                DTYPE_InterfaceAssociation = 0x0B, /**< Indicates that the descriptor is an interface association descriptor. */
+                               DTYPE_CSInterface          = 0x24, /**< Indicates that the descriptor is a class specific interface descriptor. */
+                               DTYPE_CSEndpoint           = 0x25, /**< Indicates that the descriptor is a class specific endpoint descriptor. */
                        };
 
                /* Type Defines: */
              *  Type define for all descriptors' standard header, indicating the descriptor's length and type. This structure
                         *  uses LUFA-specific element names to make each element's purpose clearer.
                         *
-                        *  \see \ref USB_StdDescriptor_Header_t for the version of this define with standard element names.
+                        *  \see \ref USB_StdDescriptor_Header_t for the version of this type with standard element names.
                         */
                        typedef struct
                        {
                         *  Type define for all descriptors' standard header, indicating the descriptor's length and type. This structure
                         *  uses the relevant standard's given element names to ensure compatibility with the standard.
                         *
-                        *  \see \ref USB_Descriptor_Header_t for the version of this define with non-standard LUFA specific element names.
+                        *  \see \ref USB_Descriptor_Header_t for the version of this type with non-standard LUFA specific element names.
                         */
                        typedef struct
                        {
                         *  Type define for a standard Device Descriptor. This structure uses LUFA-specific element names to make each
                         *  element's purpose clearer.
                         *
-                        *  \see \ref USB_StdDescriptor_Device_t for the version of this define with standard element names.
+                        *  \see \ref USB_StdDescriptor_Device_t for the version of this type with standard element names.
                         */
                        typedef struct
                        {
                         *  Type define for a standard Device Descriptor. This structure uses the relevant standard's given element names
                         *  to ensure compatibility with the standard.
                         *
-                        *  \see \ref USB_Descriptor_Device_t for the version of this define with non-standard LUFA specific element names.
+                        *  \see \ref USB_Descriptor_Device_t for the version of this type with non-standard LUFA specific element names.
                         */
                        typedef struct
                        {
                         *  Type define for a standard Configuration Descriptor header. This structure uses LUFA-specific element names
                         *  to make each element's purpose clearer.
                         *
-                        *  \see \ref USB_StdDescriptor_Configuration_Header_t for the version of this define with standard element names.
+                        *  \see \ref USB_StdDescriptor_Configuration_Header_t for the version of this type with standard element names.
                         */
                        typedef struct
                        {
                         *  Type define for a standard Configuration Descriptor header. This structure uses the relevant standard's given element names
                         *  to ensure compatibility with the standard.
                         *
-                        *  \see \ref USB_Descriptor_Device_t for the version of this define with non-standard LUFA specific element names.
+                        *  \see \ref USB_Descriptor_Device_t for the version of this type with non-standard LUFA specific element names.
                         */
                        typedef struct
                        {
                         *  Type define for a standard Interface Descriptor. This structure uses LUFA-specific element names
                         *  to make each element's purpose clearer.
                         *
-                        *  \see \ref USB_StdDescriptor_Interface_t for the version of this define with standard element names.
+                        *  \see \ref USB_StdDescriptor_Interface_t for the version of this type with standard element names.
                         */
                        typedef struct
                        {
                         *  Type define for a standard Interface Descriptor. This structure uses the relevant standard's given element names
                         *  to ensure compatibility with the standard.
                         *
-                        *  \see \ref USB_Descriptor_Interface_t for the version of this define with non-standard LUFA specific element names.
+                        *  \see \ref USB_Descriptor_Interface_t for the version of this type with non-standard LUFA specific element names.
                         */
                        typedef struct
                        {
                         *  to make each element's purpose clearer.
                         *
                         *  This descriptor has been added as a supplement to the USB2.0 standard, in the ECN located at
-                        *  <a>http://www.usb.org/developers/docs/InterfaceAssociationDescriptor_ecn.pdf</a>. It allows compound
+                        *  <a>http://www.usb.org/developers/docs/InterfaceAssociationDescriptor_ecn.pdf</a>. It allows composite
                         *  devices with multiple interfaces related to the same function to have the multiple interfaces bound
                         *  together at the point of enumeration, loading one generic driver for all the interfaces in the single
                         *  function. Read the ECN for more information.
                         *
-                        *  \see \ref USB_StdDescriptor_Interface_Association_t for the version of this define with standard element names.
+                        *  \see \ref USB_StdDescriptor_Interface_Association_t for the version of this type with standard element names.
                         */
                        typedef struct
                        {
                         *  element names to ensure compatibility with the standard.
                         *
                         *  This descriptor has been added as a supplement to the USB2.0 standard, in the ECN located at
-                        *  <a>http://www.usb.org/developers/docs/InterfaceAssociationDescriptor_ecn.pdf</a>. It allows compound
+                        *  <a>http://www.usb.org/developers/docs/InterfaceAssociationDescriptor_ecn.pdf</a>. It allows composite
                         *  devices with multiple interfaces related to the same function to have the multiple interfaces bound
                         *  together at the point of enumeration, loading one generic driver for all the interfaces in the single
                         *  function. Read the ECN for more information.
                         *
-                        *  \see \ref USB_Descriptor_Interface_Association_t for the version of this define with non-standard LUFA specific
+                        *  \see \ref USB_Descriptor_Interface_Association_t for the version of this type with non-standard LUFA specific
                         *       element names.
                         */
                        typedef struct
                         *  Type define for a standard Endpoint Descriptor. This structure uses LUFA-specific element names
                         *  to make each element's purpose clearer.
                         *
-                        *  \see \ref USB_StdDescriptor_Endpoint_t for the version of this define with standard element names.
+                        *  \see \ref USB_StdDescriptor_Endpoint_t for the version of this type with standard element names.
                         */
                        typedef struct
                        {
                         *  Type define for a standard Endpoint Descriptor. This structure uses the relevant standard's given
                         *  element names to ensure compatibility with the standard.
                         *
-                        *  \see \ref USB_Descriptor_Endpoint_t for the version of this define with non-standard LUFA specific
+                        *  \see \ref USB_Descriptor_Endpoint_t for the version of this type with non-standard LUFA specific
                         *       element names.
                         */
                        typedef struct
                         *
                         *  This structure uses LUFA-specific element names to make each element's purpose clearer.
                         *
-                        *  \see \ref USB_StdDescriptor_String_t for the version of this define with standard element names.
+                        *  \see \ref USB_StdDescriptor_String_t for the version of this type with standard element names.
                         */
                        typedef struct
                        {
                         *
                         *  This structure uses the relevant standard's given element names to ensure compatibility with the standard.
                         *
-                        *  \see \ref USB_Descriptor_String_t for the version of this define with with non-standard LUFA specific
+                        *  \see \ref USB_Descriptor_String_t for the version of this type with with non-standard LUFA specific
                         *       element names.
                         */
                        typedef struct