From d53e8a2adfaa0ff6a058f47e65d7382ce35630c9 Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Tue, 11 Jul 2023 22:17:03 +0800 Subject: [PATCH] add msc popup function --- class/msc/usbd_msc.c | 9 ++++++++- class/msc/usbd_msc.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) 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 }