summaryrefslogtreecommitdiff
path: root/src/osal
diff options
context:
space:
mode:
authorhathach <[email protected]>2019-03-21 00:54:42 +0700
committerhathach <[email protected]>2019-03-21 00:54:42 +0700
commit3574688d264b92ae7082725076f0f0bc7c3534c2 (patch)
tree08f0072bed3000934b67b43f566b930bed5c9d83 /src/osal
parenta37bc90eccf3de8e7211d1be64bdced4652e3011 (diff)
more with mynewt
Diffstat (limited to 'src/osal')
-rw-r--r--src/osal/osal_mynewt.h41
-rw-r--r--src/osal/osal_none.h20
2 files changed, 24 insertions, 37 deletions
diff --git a/src/osal/osal_mynewt.h b/src/osal/osal_mynewt.h
index 3ef34f3fc..9fa9f541e 100644
--- a/src/osal/osal_mynewt.h
+++ b/src/osal/osal_mynewt.h
@@ -125,58 +125,45 @@ static inline osal_queue_t osal_queue_create(osal_queue_def_t* qdef)
return (osal_queue_t) qdef;
}
-static inline void osal_queue_receive (osal_queue_t const queue_hdl, void *p_data, uint32_t msec, tusb_error_t *p_error)
+static inline bool osal_queue_receive(osal_queue_t const qhdl, void* data)
{
- (void) msec;
struct os_event* ev;
+ ev = os_eventq_get(&qhdl->evq);
- if ( msec == 0 )
- {
- ev = os_eventq_get_no_wait(&queue_hdl->evq);
- if ( !ev )
- {
- *p_error = TUSB_ERROR_OSAL_TIMEOUT;
- return;
- }
- }else
- {
- ev = os_eventq_get(&queue_hdl->evq);
- }
-
- memcpy(p_data, ev->ev_arg, queue_hdl->item_sz); // copy message
- os_memblock_put(&queue_hdl->mpool, ev->ev_arg); // put back mem block
- os_memblock_put(&queue_hdl->epool, ev); // put back ev block
+ memcpy(data, ev->ev_arg, qhdl->item_sz); // copy message
+ os_memblock_put(&qhdl->mpool, ev->ev_arg); // put back mem block
+ os_memblock_put(&qhdl->epool, ev); // put back ev block
- *p_error = TUSB_ERROR_NONE;
+ return true;
}
-static inline bool osal_queue_send(osal_queue_t const queue_hdl, void const * data, bool in_isr)
+static inline bool osal_queue_send(osal_queue_t const qhdl, void const * data, bool in_isr)
{
(void) in_isr;
// get a block from mem pool for data
- void* ptr = os_memblock_get(&queue_hdl->mpool);
+ void* ptr = os_memblock_get(&qhdl->mpool);
if (!ptr) return false;
- memcpy(ptr, data, queue_hdl->item_sz);
+ memcpy(ptr, data, qhdl->item_sz);
// get a block from event pool to put into queue
- struct os_event* ev = (struct os_event*) os_memblock_get(&queue_hdl->epool);
+ struct os_event* ev = (struct os_event*) os_memblock_get(&qhdl->epool);
if (!ev)
{
- os_memblock_put(&queue_hdl->mpool, ptr);
+ os_memblock_put(&qhdl->mpool, ptr);
return false;
}
tu_memclr(ev, sizeof(struct os_event));
ev->ev_arg = ptr;
- os_eventq_put(&queue_hdl->evq, ev);
+ os_eventq_put(&qhdl->evq, ev);
return true;
}
-static inline void osal_queue_flush(osal_queue_t const queue_hdl)
+static inline void osal_queue_reset(osal_queue_t const queue_hdl)
{
-
+ // TODO implement later
}
#ifdef __cplusplus
diff --git a/src/osal/osal_none.h b/src/osal/osal_none.h
index b389a0956..17a802ed8 100644
--- a/src/osal/osal_none.h
+++ b/src/osal/osal_none.h
@@ -164,6 +164,16 @@ static inline osal_queue_t osal_queue_create(osal_queue_def_t* qdef)
return (osal_queue_t) qdef;
}
+// non blocking
+static inline bool osal_queue_receive(osal_queue_t const qhdl, void* data)
+{
+ _osal_q_lock(qhdl);
+ bool success = tu_fifo_read(&qhdl->ff, data);
+ _osal_q_unlock(qhdl);
+
+ return success;
+}
+
static inline bool osal_queue_send(osal_queue_t const qhdl, void const * data, bool in_isr)
{
if (!in_isr) {
@@ -186,16 +196,6 @@ static inline void osal_queue_reset(osal_queue_t const qhdl)
// tusb_hal_int_enable_all();
}
-// non blocking
-static inline bool osal_queue_receive(osal_queue_t const qhdl, void* data)
-{
- _osal_q_lock(qhdl);
- bool success = tu_fifo_read(&qhdl->ff, data);
- _osal_q_unlock(qhdl);
-
- return success;
-}
-
#ifdef __cplusplus
}
#endif