summaryrefslogtreecommitdiff
path: root/src/osal
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-05-29 16:16:21 +0700
committerhathach <[email protected]>2026-05-29 16:16:21 +0700
commitd754c0697cbd29874c56254bd97561349fb9a229 (patch)
treee87aac61ceb44b396e8ffe83318042434acc24b4 /src/osal
parentc5676382c7d5cad7b6cfe5dc185d9891b89241f2 (diff)
Implement asynchronous control transfer queuing for USB host stack
- Added a pending FIFO queue for asynchronous control transfers when the active slot is busy. - Introduced `control_xfer_dispatch_pending` to handle queued transfers on slot availability. - Improved synchronization for blocking and non-blocking transfer modes, preventing deadlocks in RTOS. - Refactored and renamed related functions for clarity and consistency. - Enhanced error handling and callback invocation for failed or stale transfers.
Diffstat (limited to 'src/osal')
-rw-r--r--src/osal/osal_freertos.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/osal/osal_freertos.h b/src/osal/osal_freertos.h
index 9b12b5c0e..2f36aa9e8 100644
--- a/src/osal/osal_freertos.h
+++ b/src/osal/osal_freertos.h
@@ -85,7 +85,13 @@ typedef struct {
//--------------------------------------------------------------------+
typedef TaskHandle_t osal_task_handle_t;
-// Requires INCLUDE_xTaskGetCurrentTaskHandle == 1 in FreeRTOSConfig.h.
+// Requires INCLUDE_xTaskGetCurrentTaskHandle == 1 in FreeRTOSConfig.h. FreeRTOS
+// also exposes the symbol when configUSE_MUTEXES == 1, so accept either.
+#if !defined(INCLUDE_xTaskGetCurrentTaskHandle) || (INCLUDE_xTaskGetCurrentTaskHandle == 0)
+ #if !defined(configUSE_MUTEXES) || (configUSE_MUTEXES == 0)
+ #error "TinyUSB host stack requires INCLUDE_xTaskGetCurrentTaskHandle or configUSE_MUTEXES to be enabled in FreeRTOSConfig.h"
+ #endif
+#endif
TU_ATTR_ALWAYS_INLINE static inline osal_task_handle_t osal_task_get_current_handle(void) {
return xTaskGetCurrentTaskHandle();
}