aboutsummaryrefslogtreecommitdiffstats
path: root/Bootloaders/MassStorage/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Bootloaders/MassStorage/Lib')
-rw-r--r--Bootloaders/MassStorage/Lib/SCSI.c6
-rw-r--r--Bootloaders/MassStorage/Lib/SCSI.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/Bootloaders/MassStorage/Lib/SCSI.c b/Bootloaders/MassStorage/Lib/SCSI.c
index eeb2c252a..3bb868ccc 100644
--- a/Bootloaders/MassStorage/Lib/SCSI.c
+++ b/Bootloaders/MassStorage/Lib/SCSI.c
@@ -113,8 +113,12 @@ bool SCSI_DecodeSCSICommand(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
case SCSI_CMD_MODE_SENSE_6:
CommandSuccess = SCSI_Command_ModeSense_6(MSInterfaceInfo);
break;
- case SCSI_CMD_SEND_DIAGNOSTIC:
case SCSI_CMD_START_STOP_UNIT:
+#if !defined(NO_APP_START_ON_EJECT)
+ /* If the user ejected the volume, signal bootloader exit at next opportunity. */
+ RunBootloader = ((MSInterfaceInfo->State.CommandBlock.SCSICommandData[4] & 0x03) != 0x02);
+#endif
+ case SCSI_CMD_SEND_DIAGNOSTIC:
case SCSI_CMD_TEST_UNIT_READY:
case SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL:
case SCSI_CMD_VERIFY_10:
diff --git a/Bootloaders/MassStorage/Lib/SCSI.h b/Bootloaders/MassStorage/Lib/SCSI.h
index 8eb817fa7..afed5a664 100644
--- a/Bootloaders/MassStorage/Lib/SCSI.h
+++ b/Bootloaders/MassStorage/Lib/SCSI.h
@@ -42,6 +42,7 @@
#include <LUFA/Drivers/USB/USB.h>
+ #include "../BootloaderMassStorage.h"
#include "../Descriptors.h"
#include "VirtualFAT.h"