diff options
| author | Scott Shawcroft <[email protected]> | 2018-11-14 09:47:22 -0800 |
|---|---|---|
| committer | Scott Shawcroft <[email protected]> | 2018-11-23 11:18:53 -0800 |
| commit | 246c28db1a2bc2a2c0d21c62789bcc72e3fadeae (patch) | |
| tree | c37b2176ac595e428c6871cd7b6f0f301cc72f5b | |
| parent | 6aa0146c72fec825fcd55584bc9088cbd30fadec (diff) | |
Turn off interrupts when working with the event queue.
| -rw-r--r-- | src/osal/osal_none.h | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/src/osal/osal_none.h b/src/osal/osal_none.h index b21c3332a..40ecb9c37 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
|
