Fix outdated filename references in the LUFA documentation.
[pub/USBasp.git] / Bootloaders / MassStorage / BootloaderMassStorage.h
index 64241a2..d8271ea 100644 (file)
                #include <string.h>
 
                #include "Descriptors.h"
+               #include "Config/AppConfig.h"
 
                #include "Lib/SCSI.h"
 
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/USB/USB.h>
+               #include <LUFA/Platform/Platform.h>
+
+       /* Preprocessor Checks: */
+               #if !defined(__OPTIMIZE_SIZE__)
+                       #error This bootloader requires that it be optimized for size, not speed, to fit into the target device. Change optimization settings and try again.
+               #endif
 
        /* Macros: */
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
                /** LED mask for the library LED driver, to indicate that the USB interface is busy. */
                #define LEDMASK_USB_BUSY          LEDS_LED2
 
+               /** Magic bootloader key to unlock forced application start mode. */
+               #define MAGIC_BOOT_KEY             0xDC42
+
+       /* Global Variables: */
+               extern bool RunBootloader;
+
        /* Function Prototypes: */
-               void SetupHardware(void);
+               int main(void) AUX_BOOT_SECTION;
+
+               void Application_Jump_Check(void) ATTR_INIT_SECTION(3);
+
+               void EVENT_USB_Device_Connect(void) AUX_BOOT_SECTION;
+               void EVENT_USB_Device_Disconnect(void) AUX_BOOT_SECTION;
+               void EVENT_USB_Device_ConfigurationChanged(void) AUX_BOOT_SECTION;
+               void EVENT_USB_Device_ControlRequest(void) AUX_BOOT_SECTION;
 
-               void EVENT_USB_Device_Connect(void);
-               void EVENT_USB_Device_Disconnect(void);
-               void EVENT_USB_Device_ConfigurationChanged(void);
-               void EVENT_USB_Device_ControlRequest(void);
+               bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo) AUX_BOOT_SECTION;
 
-               bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
+               #if defined(INCLUDE_FROM_BOOTLOADER_MASSSTORAGE_C)
+                       static void SetupHardware(void) AUX_BOOT_SECTION;
+               #endif
 
 #endif