X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/3d4d8e7f628f9dc9981242f69b097333faa9940d..77a9df36a77d2523dd2bc24fa17f9f04c6c175c5:/LUFA/Drivers/USB/Class/Common/CDC.h diff --git a/LUFA/Drivers/USB/Class/Common/CDC.h b/LUFA/Drivers/USB/Class/Common/CDC.h index c63c0b537..45e0c5851 100644 --- a/LUFA/Drivers/USB/Class/Common/CDC.h +++ b/LUFA/Drivers/USB/Class/Common/CDC.h @@ -51,9 +51,7 @@ #define _CDC_CLASS_COMMON_H_ /* Includes: */ - #include "../../HighLevel/StdDescriptors.h" - - #include + #include "../../Core/StdDescriptors.h" /* Enable C linkage for C++ Compilers: */ #if defined(__cplusplus) @@ -147,10 +145,10 @@ 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. */ - 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 @@ -233,6 +231,8 @@ * 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 { @@ -243,7 +243,7 @@ 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). * @@ -253,6 +253,8 @@ * * \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 { @@ -264,7 +266,7 @@ * 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). * @@ -272,6 +274,8 @@ * 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 { @@ -283,7 +287,7 @@ * 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). * @@ -292,6 +296,8 @@ * * \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 { @@ -306,7 +312,7 @@ * 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). * @@ -314,6 +320,8 @@ * 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 { @@ -323,7 +331,7 @@ */ 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). * @@ -332,6 +340,8 @@ * * \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 { @@ -344,12 +354,14 @@ */ 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. + * + * \note Regardless of CPU architecture, these values should be stored as little endian. */ typedef struct { @@ -361,7 +373,7 @@ * \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)