From c900c951a339758d8ec34368b226a900e3f22ac0 Mon Sep 17 00:00:00 2001 From: Diego Ismirlian Date: Tue, 4 Jul 2017 19:09:39 -0300 Subject: USBH: MSD: Rework to prevent race conditions on unload --- os/hal/include/usbh/dev/msd.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'os/hal/include/usbh/dev/msd.h') diff --git a/os/hal/include/usbh/dev/msd.h b/os/hal/include/usbh/dev/msd.h index 84179c5..4eef6d6 100644 --- a/os/hal/include/usbh/dev/msd.h +++ b/os/hal/include/usbh/dev/msd.h @@ -58,6 +58,9 @@ struct USBHMassStorageLUNDriver { const struct USBHMassStorageDriverVMT *vmt; _base_block_device_data + /* for serializing access to the LUN driver */ + mutex_t mtx; + BlockDeviceInfo info; USBHMassStorageDriver *msdp; @@ -68,11 +71,6 @@ struct USBHMassStorageDriver { /* inherited from abstract class driver */ _usbh_base_classdriver_data - /* for LUN request serialization, can be removed - * if the driver is configured to support only one LUN - * per USBHMassStorageDriver instance */ - mutex_t mtx; - usbh_ep_t epin; usbh_ep_t epout; uint8_t ifnum; @@ -98,11 +96,7 @@ extern USBHMassStorageDriver USBHMSD[HAL_USBHMSD_MAX_INSTANCES]; #ifdef __cplusplus extern "C" { #endif - /* Mass Storage Driver */ - void usbhmsdObjectInit(USBHMassStorageDriver *msdp); - /* Mass Storage LUN Driver (block driver) */ - void usbhmsdLUNObjectInit(USBHMassStorageLUNDriver *lunp); void usbhmsdLUNStart(USBHMassStorageLUNDriver *lunp); void usbhmsdLUNStop(USBHMassStorageLUNDriver *lunp); bool usbhmsdLUNConnect(USBHMassStorageLUNDriver *lunp); -- cgit v1.2.3