diff options
| author | sakumisu <[email protected]> | 2024-01-16 22:50:29 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2024-01-16 22:50:48 +0800 |
| commit | 0f5e05052f53cd3bdc7ff0e9a2f535a532748bbf (patch) | |
| tree | 3a879205bcbdeb477add46a44749098ad65b419f /class | |
| parent | b773cecd2eff3d71250c00064d240c13e1c6d1d6 (diff) | |
add usbd init and deinit event macro
Diffstat (limited to 'class')
| -rw-r--r-- | class/msc/usbd_msc.c | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/class/msc/usbd_msc.c b/class/msc/usbd_msc.c index 26ca70bf..45df1b3c 100644 --- a/class/msc/usbd_msc.c +++ b/class/msc/usbd_msc.c @@ -85,6 +85,28 @@ static int msc_storage_class_interface_request_handler(struct usb_setup_packet * void msc_storage_notify_handler(uint8_t event, void *arg) { switch (event) { + case USBD_EVENT_INIT: +#ifdef CONFIG_USBDEV_MSC_THREAD + g_usbd_msc.usbd_msc_mq = usb_osal_mq_create(1); + if (g_usbd_msc.usbd_msc_mq == NULL) { + USB_LOG_ERR("No memory to alloc for g_usbd_msc.usbd_msc_mq\r\n"); + } + g_usbd_msc.usbd_msc_thread = usb_osal_thread_create("usbd_msc", CONFIG_USBDEV_MSC_STACKSIZE, CONFIG_USBDEV_MSC_PRIO, usbdev_msc_thread, NULL); + if (g_usbd_msc.usbd_msc_thread == NULL) { + USB_LOG_ERR("No memory to alloc for g_usbd_msc.usbd_msc_thread\r\n"); + } +#endif + break; + case USBD_EVENT_DEINIT: +#ifdef CONFIG_USBDEV_MSC_THREAD + if (g_usbd_msc.usbd_msc_mq) { + usb_osal_mq_delete(g_usbd_msc.usbd_msc_mq); + } + if (g_usbd_msc.usbd_msc_thread) { + usb_osal_thread_delete(g_usbd_msc.usbd_msc_thread); + } +#endif + break; case USBD_EVENT_RESET: usbd_msc_reset(); break; @@ -888,16 +910,6 @@ struct usbd_interface *usbd_msc_init_intf(struct usbd_interface *intf, const uin return NULL; } -#ifdef CONFIG_USBDEV_MSC_THREAD - g_usbd_msc.usbd_msc_mq = usb_osal_mq_create(1); - if (g_usbd_msc.usbd_msc_mq == NULL) { - return NULL; - } - g_usbd_msc.usbd_msc_thread = usb_osal_thread_create("usbd_msc", CONFIG_USBDEV_MSC_STACKSIZE, CONFIG_USBDEV_MSC_PRIO, usbdev_msc_thread, NULL); - if (g_usbd_msc.usbd_msc_thread == NULL) { - return NULL; - } -#endif return intf; } |
