Add structure padding to the appropriate descriptor structures to maintain correct...
[pub/USBasp.git] / LUFA / Drivers / USB / Core / StdDescriptors.h
index 6f12207..1ad1497 100644 (file)
                                uint8_t Type; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                                               *   given by the specific class.
                                               */
-                       } USB_Descriptor_Header_t;
+                       } ATTR_PACKED USB_Descriptor_Header_t;
 
                        /** \brief Standard USB Descriptor Header (USB-IF naming conventions).
                         *
                                uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                                                          *   given by the specific class.
                                                          */
-                       } USB_StdDescriptor_Header_t;
+                       } ATTR_PACKED USB_StdDescriptor_Header_t;
 
                        /** \brief Standard USB Device Descriptor (LUFA naming conventions).
                         *
                                uint8_t  NumberOfConfigurations; /**< Total number of configurations supported by
                                                                  *   the device.
                                                                  */
-                       } USB_Descriptor_Device_t;
+                       } ATTR_PACKED USB_Descriptor_Device_t;
 
                        /** \brief Standard USB Device Descriptor (USB-IF naming conventions).
                         *
                                uint8_t  bNumConfigurations; /**< Total number of configurations supported by
                                                              *   the device.
                                                              */
-                       } USB_StdDescriptor_Device_t;
+                       } ATTR_PACKED USB_StdDescriptor_Device_t;
 
                        /** \brief Standard USB Configuration Descriptor (LUFA naming conventions).
                         *
                                                               *   current configuration, calculated by the \ref USB_CONFIG_POWER_MA()
                                                               *   macro.
                                                               */
-                       } USB_Descriptor_Configuration_Header_t;
+                       } ATTR_PACKED USB_Descriptor_Configuration_Header_t;
 
                        /** \brief Standard USB Configuration Descriptor (USB-IF naming conventions).
                         *
                                                     *   current configuration, calculated by the \ref USB_CONFIG_POWER_MA()
                                                     *   macro.
                                                     */
-                       } USB_StdDescriptor_Configuration_Header_t;
+                       } ATTR_PACKED USB_StdDescriptor_Configuration_Header_t;
 
                        /** \brief Standard USB Interface Descriptor (LUFA naming conventions).
                         *
                                uint8_t Protocol; /**< Interface protocol ID. */
 
                                uint8_t InterfaceStrIndex; /**< Index of the string descriptor describing the interface. */
-                       } USB_Descriptor_Interface_t;
+                       } ATTR_PACKED USB_Descriptor_Interface_t;
 
                        /** \brief Standard USB Interface Descriptor (USB-IF naming conventions).
                         *
                                uint8_t iInterface; /**< Index of the string descriptor describing the
                                                     *   interface.
                                                     */
-                       } USB_StdDescriptor_Interface_t;
+                       } ATTR_PACKED USB_StdDescriptor_Interface_t;
 
                        /** \brief Standard USB Interface Association Descriptor (LUFA naming conventions).
                         *
                                uint8_t IADStrIndex; /**< Index of the string descriptor describing the
                                                      *   interface association.
                                                      */
-                       } USB_Descriptor_Interface_Association_t;
+                       } ATTR_PACKED USB_Descriptor_Interface_Association_t;
 
                        /** \brief Standard USB Interface Association Descriptor (USB-IF naming conventions).
                         *
                                uint8_t iFunction; /**< Index of the string descriptor describing the
                                                    *   interface association.
                                                    */
-                       } USB_StdDescriptor_Interface_Association_t;
+                       } ATTR_PACKED USB_StdDescriptor_Interface_Association_t;
 
                        /** \brief Standard USB Endpoint Descriptor (LUFA naming conventions).
                         *
                                uint8_t  PollingIntervalMS; /**< Polling interval in milliseconds for the endpoint if it is an INTERRUPT
                                                             *   or ISOCHRONOUS type.
                                                             */
-                       } USB_Descriptor_Endpoint_t;
+                       } ATTR_PACKED USB_Descriptor_Endpoint_t;
 
                        /** \brief Standard USB Endpoint Descriptor (USB-IF naming conventions).
                         *
                                uint8_t  bInterval; /**< Polling interval in milliseconds for the endpoint if it is an INTERRUPT or
                                                     *   ISOCHRONOUS type.
                                                     */
-                       } USB_StdDescriptor_Endpoint_t;
+                       } ATTR_PACKED USB_StdDescriptor_Endpoint_t;
 
                        /** \brief Standard USB String Descriptor (LUFA naming conventions).
                         *
                                                          *   Unicode strings, and may be used instead of an explicit
                                                          *   array of ASCII characters.
                                                          */
-                       } USB_Descriptor_String_t;
+                       } ATTR_PACKED USB_Descriptor_String_t;
 
                        /** \brief Standard USB String Descriptor (USB-IF naming conventions).
                         *
                                                    *   quotation mark) are considered to be Unicode strings, and may be used instead
                                                    *   of an explicit array of ASCII characters.
                                                    */
-                       } USB_StdDescriptor_String_t;
+                       } ATTR_PACKED USB_StdDescriptor_String_t;
 
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)