Be doubly-certain that the incomming CDC class driver's endpoint/pipe is flushed...
[pub/USBasp.git] / Bootloaders / DFU / Descriptors.h
index b6d1a2a..32d5828 100644 (file)
@@ -1,21 +1,21 @@
 /*\r
              LUFA Library\r
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+\r
+  Permission to use, copy, modify, distribute, and sell this \r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in \r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting \r
+  documentation, and that the name of the author not be used in \r
+  advertising or publicity pertaining to distribution of the \r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
                #define DTYPE_DFUFunctional               0x21\r
                \r
                /** DFU attribute mask, indicating that the DFU device will detach and re-attach when a DFU_DETACH\r
                #define DTYPE_DFUFunctional               0x21\r
                \r
                /** DFU attribute mask, indicating that the DFU device will detach and re-attach when a DFU_DETACH\r
-                *  command is issued, rather than the host issing a USB Reset.\r
+                *  command is issued, rather than the host issuing a USB Reset.\r
                 */\r
                #define ATTR_WILL_DETATCH                 (1 << 3)\r
 \r
                 */\r
                #define ATTR_WILL_DETATCH                 (1 << 3)\r
 \r
-               /** DFU attribute mask, indicating that the DFU device can communicate during the manefestation phase\r
+               /** DFU attribute mask, indicating that the DFU device can communicate during the manifestation phase\r
                 *  (memory programming phase).\r
                 */\r
                #define ATTR_MANEFESTATION_TOLLERANT      (1 << 2)\r
                 *  (memory programming phase).\r
                 */\r
                #define ATTR_MANEFESTATION_TOLLERANT      (1 << 2)\r
                 */             \r
                #define ATTR_CAN_DOWNLOAD                 (1 << 0)\r
 \r
                 */             \r
                #define ATTR_CAN_DOWNLOAD                 (1 << 0)\r
 \r
-               #if defined(__AVR_AT90USB1286__)\r
+               #if defined(__AVR_AT90USB1287__)\r
                        #define PRODUCT_ID_CODE               0x2FFB\r
                        #define PRODUCT_ID_CODE               0x2FFB\r
-\r
-                       #define SIGNATURE_BYTE_1              0x1E\r
-                       #define SIGNATURE_BYTE_2              0x97\r
-                       #define SIGNATURE_BYTE_3              0x82\r
-               #elif defined(__AVR_AT90USB1287__)\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x97\r
+                       #define AVR_SIGNATURE_3               0x82\r
+               #elif defined(__AVR_AT90USB647__)\r
+                       #define PRODUCT_ID_CODE               0x2FF9\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x96\r
+                       #define AVR_SIGNATURE_3               0x82\r
+               #elif defined(__AVR_AT90USB1286__)\r
                        #define PRODUCT_ID_CODE               0x2FFB\r
                        #define PRODUCT_ID_CODE               0x2FFB\r
-                       \r
-                       #define SIGNATURE_BYTE_1              0x1E\r
-                       #define SIGNATURE_BYTE_2              0x97\r
-                       #define SIGNATURE_BYTE_3              0x82\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x97\r
+                       #define AVR_SIGNATURE_3               0x82\r
                #elif defined(__AVR_AT90USB646__)\r
                        #define PRODUCT_ID_CODE               0x2FF9\r
                #elif defined(__AVR_AT90USB646__)\r
                        #define PRODUCT_ID_CODE               0x2FF9\r
-\r
-                       #define SIGNATURE_BYTE_1              0x1E\r
-                       #define SIGNATURE_BYTE_2              0x96\r
-                       #define SIGNATURE_BYTE_3              0x82\r
-               #elif defined(__AVR_AT90USB647__)\r
-                       #define PRODUCT_ID_CODE               0x2FF9\r
-\r
-                       #define SIGNATURE_BYTE_1              0x1E\r
-                       #define SIGNATURE_BYTE_2              0x96\r
-                       #define SIGNATURE_BYTE_3              0x82\r
-               #elif defined(__AVR_AT90USB162__)\r
-                       #define PRODUCT_ID_CODE               0x2FFA\r
-\r
-                       #define SIGNATURE_BYTE_1              0x1E\r
-                       #define SIGNATURE_BYTE_2              0x94\r
-                       #define SIGNATURE_BYTE_3              0x82\r
-               #elif defined(__AVR_AT90USB82__)\r
-                       #define PRODUCT_ID_CODE               0x2FF7\r
-\r
-                       #define SIGNATURE_BYTE_1              0x1E\r
-                       #define SIGNATURE_BYTE_2              0x94\r
-                       #define SIGNATURE_BYTE_3              0x82\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x96\r
+                       #define AVR_SIGNATURE_3               0x82\r
                #elif defined(__AVR_ATmega32U6__)\r
                        #define PRODUCT_ID_CODE               0x2FFB\r
                #elif defined(__AVR_ATmega32U6__)\r
                        #define PRODUCT_ID_CODE               0x2FFB\r
-\r
-                       #define SIGNATURE_BYTE_1              0x1E\r
-                       #define SIGNATURE_BYTE_2              0x95\r
-                       #define SIGNATURE_BYTE_3              0x88\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x95\r
+                       #define AVR_SIGNATURE_3               0x88\r
                #elif defined(__AVR_ATmega32U4__)\r
                        #define PRODUCT_ID_CODE               0x2FF4\r
                #elif defined(__AVR_ATmega32U4__)\r
                        #define PRODUCT_ID_CODE               0x2FF4\r
-\r
-                       #define SIGNATURE_BYTE_1              0x1E\r
-                       #define SIGNATURE_BYTE_2              0x95\r
-                       #define SIGNATURE_BYTE_3              0x87      \r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x95\r
+                       #define AVR_SIGNATURE_3               0x87\r
                #elif defined(__AVR_ATmega16U4__)\r
                        #define PRODUCT_ID_CODE               0x2FF3\r
                #elif defined(__AVR_ATmega16U4__)\r
                        #define PRODUCT_ID_CODE               0x2FF3\r
-\r
-                       #define SIGNATURE_BYTE_1              0x1E\r
-                       #define SIGNATURE_BYTE_2              0x94\r
-                       #define SIGNATURE_BYTE_3              0x88\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x94\r
+                       #define AVR_SIGNATURE_3               0x88\r
+               #elif defined(__AVR_ATmega32U2__)\r
+                       #define PRODUCT_ID_CODE               0x2FF0\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x94\r
+                       #define AVR_SIGNATURE_3               0x82\r
+               #elif defined(__AVR_ATmega16U2__)\r
+                       #define PRODUCT_ID_CODE               0x2FEF\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x94\r
+                       #define AVR_SIGNATURE_3               0x89\r
+               #elif defined(__AVR_AT90USB162__)\r
+                       #define PRODUCT_ID_CODE               0x2FFA\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x94\r
+                       #define AVR_SIGNATURE_3               0x82\r
+               #elif defined(__AVR_ATmega8U2__)\r
+                       #define PRODUCT_ID_CODE               0x2FF7\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x93\r
+                       #define AVR_SIGNATURE_3               0x82\r
+               #elif defined(__AVR_AT90USB82__)\r
+                       #define PRODUCT_ID_CODE               0x2FEE\r
+                       #define AVR_SIGNATURE_1               0x1E\r
+                       #define AVR_SIGNATURE_2               0x93\r
+                       #define AVR_SIGNATURE_3               0x89\r
                #else\r
                        #error The selected AVR part is not currently supported by this bootloader.\r
                #endif\r
                #else\r
                        #error The selected AVR part is not currently supported by this bootloader.\r
                #endif\r
                        uint8_t                               Attributes; /**< DFU device attributes, a mask comprising of the\r
                                                                            *  ATTR_* macros listed in this source file\r
                                                                            */\r
                        uint8_t                               Attributes; /**< DFU device attributes, a mask comprising of the\r
                                                                            *  ATTR_* macros listed in this source file\r
                                                                            */\r
-                       uint16_t                              DetatchTimeout; /**< Timeout in milliseconds between a USB_DETACH\r
+                       uint16_t                              DetachTimeout; /**< Timeout in milliseconds between a USB_DETACH\r
                                                                                *  command being issued and the device detaching\r
                                                                                *  from the USB bus\r
                                                                                */                                                                                                                                      \r
                                                                                *  command being issued and the device detaching\r
                                                                                *  from the USB bus\r
                                                                                */                                                                                                                                      \r
                } USB_Descriptor_Configuration_t;\r
                \r
        /* Function Prototypes: */\r
                } USB_Descriptor_Configuration_t;\r
                \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
 \r
 #endif\r