summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2023-07-11 22:17:03 +0800
committersakumisu <[email protected]>2023-07-11 22:17:03 +0800
commitd53e8a2adfaa0ff6a058f47e65d7382ce35630c9 (patch)
treef287e86232c1d23d4d09a07cd67d0c37542ca0e6
parent3bdb3bbf843bd8f9b4a95f90c139dbccec5581b6 (diff)
add msc popup function
-rw-r--r--class/msc/usbd_msc.c9
-rw-r--r--class/msc/usbd_msc.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/class/msc/usbd_msc.c b/class/msc/usbd_msc.c
index d68d83cc..eec6218c 100644
--- a/class/msc/usbd_msc.c
+++ b/class/msc/usbd_msc.c
@@ -30,6 +30,7 @@ USB_NOCACHE_RAM_SECTION struct usbd_msc_priv {
USB_MEM_ALIGNX struct CSW csw;
bool readonly;
+ bool popup;
uint8_t sKey; /* Sense key */
uint8_t ASC; /* Additional Sense Code */
uint8_t ASQ; /* Additional Sense Qualifier */
@@ -309,6 +310,7 @@ static bool SCSI_startStopUnit(uint8_t **data, uint32_t *len)
} else if ((g_usbd_msc.cbw.CB[4] & 0x3U) == 0x2U) /* START=0 and LOEJ Load Eject=1 */
{
//SCSI_MEDIUM_EJECTED;
+ g_usbd_msc.popup = true;
} else if ((g_usbd_msc.cbw.CB[4] & 0x3U) == 0x3U) /* START=1 and LOEJ Load Eject=1 */
{
//SCSI_MEDIUM_UNLOCKED;
@@ -838,4 +840,9 @@ struct usbd_interface *usbd_msc_init_intf(struct usbd_interface *intf, const uin
void usbd_msc_set_readonly(bool readonly)
{
g_usbd_msc.readonly = readonly;
-} \ No newline at end of file
+}
+
+bool usbd_msc_set_popup(void)
+{
+ return g_usbd_msc.popup;
+}
diff --git a/class/msc/usbd_msc.h b/class/msc/usbd_msc.h
index 824b4844..022f046d 100644
--- a/class/msc/usbd_msc.h
+++ b/class/msc/usbd_msc.h
@@ -22,6 +22,7 @@ int usbd_msc_sector_read(uint32_t sector, uint8_t *buffer, uint32_t length);
int usbd_msc_sector_write(uint32_t sector, uint8_t *buffer, uint32_t length);
void usbd_msc_set_readonly(bool readonly);
+bool usbd_msc_set_popup(void);
#ifdef __cplusplus
}