From 246c28db1a2bc2a2c0d21c62789bcc72e3fadeae Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Wed, 14 Nov 2018 09:47:22 -0800 Subject: [PATCH] Turn off interrupts when working with the event queue. --- src/osal/osal_none.h | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/src/osal/osal_none.h b/src/osal/osal_none.h index b21c3332..40ecb9c3 100644 --- a/src/osal/osal_none.h +++ b/src/osal/osal_none.h @@ -43,6 +43,8 @@ #ifndef _TUSB_OSAL_NONE_H_ #define _TUSB_OSAL_NONE_H_ +#include "tusb_hal.h" + #ifdef __cplusplus extern "C" { #endif @@ -135,14 +137,14 @@ static inline osal_queue_t osal_queue_create(osal_queue_def_t* qdef) static inline bool osal_queue_send(osal_queue_t const queue_hdl, void const * data, bool in_isr) { - (void) in_isr; -// if (!in_isr) tusb_hal_int_disable_all(); - - bool rc = tu_fifo_write( (tu_fifo_t*) queue_hdl, data); - -// if (!in_isr) tusb_hal_int_enable_all(); - - return rc; + if (!in_isr) { + tusb_hal_int_disable_all(); + } + bool success = tu_fifo_write( (tu_fifo_t*) queue_hdl, data); + if (!in_isr) { + tusb_hal_int_enable_all(); + } + return success; } static inline void osal_queue_reset(osal_queue_t const queue_hdl) @@ -152,18 +154,11 @@ static inline void osal_queue_reset(osal_queue_t const queue_hdl) // tusb_hal_int_enable_all(); } - -static inline bool osal_queue_receive(osal_queue_t const queue_hdl, void* data) -{ - // osal none return immediately without blocking - // extern void tusb_hal_int_disable(uint8_t rhport); - // extern void tusb_hal_int_enable(uint8_t rhport); - -// tusb_hal_int_disable(0); - bool rc = tu_fifo_read(queue_hdl, data); -// tusb_hal_int_enable(0); - - return rc; +static inline bool osal_queue_receive(osal_queue_t const queue_hdl, void* data) { + tusb_hal_int_disable_all(); + bool success = tu_fifo_read(queue_hdl, data); + tusb_hal_int_enable_all(); + return success; } #ifdef __cplusplus