Update UC3 platform driver support to use the bitmasks defined in the header files...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / CDC.h
index 52107d6..45e0c58 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassCDC
  */
 
 /** \ingroup Group_USBClassCDC
- *  @defgroup Group_USBClassCDCCommon  Common Class Definitions
+ *  \defgroup Group_USBClassCDCCommon  Common Class Definitions
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
@@ -51,9 +51,7 @@
 #define _CDC_CLASS_COMMON_H_
 
        /* Includes: */
 #define _CDC_CLASS_COMMON_H_
 
        /* Includes: */
-               #include "../../HighLevel/StdDescriptors.h"
-
-               #include <string.h>
+               #include "../../Core/StdDescriptors.h"
 
        /* Enable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
 
        /* Enable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
                        CDC_CSCP_ATCommandProtocol      = 0x01, /**< Descriptor Protocol value indicating that the device or interface
                                                                 *   belongs to the AT Command protocol of the CDC class.
                                                                 */
                        CDC_CSCP_ATCommandProtocol      = 0x01, /**< Descriptor Protocol value indicating that the device or interface
                                                                 *   belongs to the AT Command protocol of the CDC class.
                                                                 */
-                       CDC_CSCP_NoSpecificProtocol     = 0x00, /**< Descriptor Class value indicating that the device or interface
+                       CDC_CSCP_NoSpecificProtocol     = 0x00, /**< Descriptor Protocol value indicating that the device or interface
                                                                 *   belongs to no specific protocol of the CDC class.
                                                                 */
                                                                 *   belongs to no specific protocol of the CDC class.
                                                                 */
-                       CDC_CSCP_VendorSpecificProtocol = 0xFF, /**< Descriptor Class value indicating that the device or interface
+                       CDC_CSCP_VendorSpecificProtocol = 0xFF, /**< Descriptor Protocol value indicating that the device or interface
                                                                 *   belongs to a vendor-specific protocol of the CDC class.
                                                                 */
                        CDC_CSCP_CDCDataClass           = 0x0A, /**< Descriptor Class value indicating that the device or interface
                                                                 *   belongs to a vendor-specific protocol of the CDC class.
                                                                 */
                        CDC_CSCP_CDCDataClass           = 0x0A, /**< Descriptor Class value indicating that the device or interface
                 *  See the CDC class specification for more details.
                 *
                 *  \see \ref USB_CDC_StdDescriptor_FunctionalHeader_t for the version of this type with standard element names.
                 *  See the CDC class specification for more details.
                 *
                 *  \see \ref USB_CDC_StdDescriptor_FunctionalHeader_t for the version of this type with standard element names.
+                *
+                *  \note Regardless of CPU architecture, these values should be stored as little endian.
                 */
                typedef struct
                {
                 */
                typedef struct
                {
                        uint16_t                CDCSpecification; /**< Version number of the CDC specification implemented by the device,
                                                                   *   encoded in BCD format.
                                                                   */
                        uint16_t                CDCSpecification; /**< Version number of the CDC specification implemented by the device,
                                                                   *   encoded in BCD format.
                                                                   */
-               } USB_CDC_Descriptor_FunctionalHeader_t;
+               } ATTR_PACKED USB_CDC_Descriptor_FunctionalHeader_t;
 
                /** \brief CDC class-specific Functional Header Descriptor (USB-IF naming conventions).
                 *
 
                /** \brief CDC class-specific Functional Header Descriptor (USB-IF naming conventions).
                 *
                 *
                 *  \see \ref USB_CDC_Descriptor_FunctionalHeader_t for the version of this type with non-standard LUFA specific
                 *       element names.
                 *
                 *  \see \ref USB_CDC_Descriptor_FunctionalHeader_t for the version of this type with non-standard LUFA specific
                 *       element names.
+                *
+                *  \note Regardless of CPU architecture, these values should be stored as little endian.
                 */
                typedef struct
                {
                 */
                typedef struct
                {
                                                      *   must be \ref CDC_DSUBTYPE_CSInterface_Header.
                                                      */
                        uint16_t bcdCDC; /**< Version number of the CDC specification implemented by the device, encoded in BCD format. */
                                                      *   must be \ref CDC_DSUBTYPE_CSInterface_Header.
                                                      */
                        uint16_t bcdCDC; /**< Version number of the CDC specification implemented by the device, encoded in BCD format. */
-               } USB_CDC_StdDescriptor_FunctionalHeader_t;
+               } ATTR_PACKED USB_CDC_StdDescriptor_FunctionalHeader_t;
 
                /** \brief CDC class-specific Functional ACM Descriptor (LUFA naming conventions).
                 *
 
                /** \brief CDC class-specific Functional ACM Descriptor (LUFA naming conventions).
                 *
                 *  supports the CDC ACM subclass of the CDC specification. See the CDC class specification for more details.
                 *
                 *  \see \ref USB_CDC_StdDescriptor_FunctionalACM_t for the version of this type with standard element names.
                 *  supports the CDC ACM subclass of the CDC specification. See the CDC class specification for more details.
                 *
                 *  \see \ref USB_CDC_StdDescriptor_FunctionalACM_t for the version of this type with standard element names.
+                *
+                *  \note Regardless of CPU architecture, these values should be stored as little endian.
                 */
                typedef struct
                {
                 */
                typedef struct
                {
                                                               *   this should be set to a fixed value of 0x06 - for other capabilities, refer
                                                               *   to the CDC ACM specification.
                                                               */
                                                               *   this should be set to a fixed value of 0x06 - for other capabilities, refer
                                                               *   to the CDC ACM specification.
                                                               */
-               } USB_CDC_Descriptor_FunctionalACM_t;
+               } ATTR_PACKED USB_CDC_Descriptor_FunctionalACM_t;
 
                /** \brief CDC class-specific Functional ACM Descriptor (USB-IF naming conventions).
                 *
 
                /** \brief CDC class-specific Functional ACM Descriptor (USB-IF naming conventions).
                 *
                 *
                 *  \see \ref USB_CDC_Descriptor_FunctionalACM_t for the version of this type with non-standard LUFA specific
                 *       element names.
                 *
                 *  \see \ref USB_CDC_Descriptor_FunctionalACM_t for the version of this type with non-standard LUFA specific
                 *       element names.
+                *
+                *  \note Regardless of CPU architecture, these values should be stored as little endian.
                 */
                typedef struct
                {
                 */
                typedef struct
                {
                                                 *   this should be set to a fixed value of 0x06 - for other capabilities, refer
                                                 *   to the CDC ACM specification.
                                                 */
                                                 *   this should be set to a fixed value of 0x06 - for other capabilities, refer
                                                 *   to the CDC ACM specification.
                                                 */
-               } USB_CDC_StdDescriptor_FunctionalACM_t;
+               } ATTR_PACKED USB_CDC_StdDescriptor_FunctionalACM_t;
 
                /** \brief CDC class-specific Functional Union Descriptor (LUFA naming conventions).
                 *
 
                /** \brief CDC class-specific Functional Union Descriptor (LUFA naming conventions).
                 *
                 *  CDC control and data interfaces are related. See the CDC class specification for more details.
                 *
                 *  \see \ref USB_CDC_StdDescriptor_FunctionalUnion_t for the version of this type with standard element names.
                 *  CDC control and data interfaces are related. See the CDC class specification for more details.
                 *
                 *  \see \ref USB_CDC_StdDescriptor_FunctionalUnion_t for the version of this type with standard element names.
+                *
+                *  \note Regardless of CPU architecture, these values should be stored as little endian.
                 */
                typedef struct
                {
                 */
                typedef struct
                {
                                                          */
                        uint8_t                 MasterInterfaceNumber; /**< Interface number of the CDC Control interface. */
                        uint8_t                 SlaveInterfaceNumber; /**< Interface number of the CDC Data interface. */
                                                          */
                        uint8_t                 MasterInterfaceNumber; /**< Interface number of the CDC Control interface. */
                        uint8_t                 SlaveInterfaceNumber; /**< Interface number of the CDC Data interface. */
-               } USB_CDC_Descriptor_FunctionalUnion_t;
+               } ATTR_PACKED USB_CDC_Descriptor_FunctionalUnion_t;
 
                /** \brief CDC class-specific Functional Union Descriptor (USB-IF naming conventions).
                 *
 
                /** \brief CDC class-specific Functional Union Descriptor (USB-IF naming conventions).
                 *
                 *
                 *  \see \ref USB_CDC_Descriptor_FunctionalUnion_t for the version of this type with non-standard LUFA specific
                 *       element names.
                 *
                 *  \see \ref USB_CDC_Descriptor_FunctionalUnion_t for the version of this type with non-standard LUFA specific
                 *       element names.
+                *
+                *  \note Regardless of CPU architecture, these values should be stored as little endian.
                 */
                typedef struct
                {
                 */
                typedef struct
                {
                                                     */
                        uint8_t bMasterInterface; /**< Interface number of the CDC Control interface. */
                        uint8_t bSlaveInterface0; /**< Interface number of the CDC Data interface. */
                                                     */
                        uint8_t bMasterInterface; /**< Interface number of the CDC Control interface. */
                        uint8_t bSlaveInterface0; /**< Interface number of the CDC Data interface. */
-               } USB_CDC_StdDescriptor_FunctionalUnion_t;
+               } ATTR_PACKED USB_CDC_StdDescriptor_FunctionalUnion_t;
                
                /** \brief CDC Virtual Serial Port Line Encoding Settings Structure.
                 *
                 *  Type define for a CDC Line Encoding structure, used to hold the various encoding parameters for a virtual
                 *  serial port.
                
                /** \brief CDC Virtual Serial Port Line Encoding Settings Structure.
                 *
                 *  Type define for a CDC Line Encoding structure, used to hold the various encoding parameters for a virtual
                 *  serial port.
+                *
+                *  \note Regardless of CPU architecture, these values should be stored as little endian.
                 */
                typedef struct
                {
                 */
                typedef struct
                {
                                                                  *   \ref CDC_LineEncodingParity_t enum.
                                                                  */
                        uint8_t  DataBits; /**< Bits of data per character of the virtual serial port. */
                                                                  *   \ref CDC_LineEncodingParity_t enum.
                                                                  */
                        uint8_t  DataBits; /**< Bits of data per character of the virtual serial port. */
-               } CDC_LineEncoding_t;
+               } ATTR_PACKED CDC_LineEncoding_t;
 
        /* Disable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
 
        /* Disable C linkage for C++ Compilers: */
                #if defined(__cplusplus)