Be doubly-certain that the incomming CDC class driver's endpoint/pipe is flushed...
[pub/USBasp.git] / Bootloaders / DFU / Descriptors.h
index 7765981..32d5828 100644 (file)
@@ -1,21 +1,21 @@
 /*\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
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+  Copyright 2010  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
+  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
                #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
-               /** 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
                 */             \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
-               #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 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_AT90USB647__)\r
-                       #define PRODUCT_ID_CODE               0x2FF9\r
-               #elif defined(__AVR_AT90USB162__)\r
-                       #define PRODUCT_ID_CODE               0x2FFA\r
-               #elif defined(__AVR_AT90USB82__)\r
-                       #define PRODUCT_ID_CODE               0x2FF7\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
+                       #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
+                       #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
+                       #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
                        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
                } 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