a very simple shell framework
simple, clear, easy to DIY
This commit is contained in:
@@ -51,6 +51,10 @@
|
||||
} while(0)
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
|
||||
#define TOS_OBJ_INIT(obj, obj_type) knl_object_init(&obj->knl_obj, obj_type)
|
||||
#define TOS_OBJ_DEINIT(obj) knl_object_deinit(&obj->knl_obj)
|
||||
|
||||
#define TOS_OBJ_VERIFY(obj, obj_type) \
|
||||
do { \
|
||||
if (!knl_object_verify(&obj->knl_obj, obj_type)) { \
|
||||
@@ -66,8 +70,12 @@
|
||||
} while (0)
|
||||
|
||||
#else
|
||||
|
||||
#define TOS_OBJ_INIT(obj, obj_type)
|
||||
#define TOS_OBJ_DEINIT(obj)
|
||||
#define TOS_OBJ_VERIFY(obj, obj_type)
|
||||
#define TOS_OBJ_VERIFY_RC(obj, obj_type, return_code)
|
||||
|
||||
#endif
|
||||
|
||||
#if TOS_CFG_LIBC_PRINTF_EN > 0u
|
||||
|
@@ -22,7 +22,7 @@ typedef struct k_slist_node_st {
|
||||
struct k_slist_node_st *next;
|
||||
} k_slist_t;
|
||||
|
||||
#define TOS_SLIST_NODE(node) \
|
||||
#define TOS_SLIST_NODE(dummy) \
|
||||
{ K_NULL }
|
||||
|
||||
#define TOS_SLIST_DEFINE(slist) \
|
||||
@@ -164,6 +164,18 @@ __API__ __STATIC_INLINE__ int tos_slist_length(k_slist_t *slist)
|
||||
return len;
|
||||
}
|
||||
|
||||
__API__ __STATIC_INLINE__ int tos_slist_contains(k_slist_t *node, k_slist_t *slist)
|
||||
{
|
||||
while (slist->next) {
|
||||
if (slist->next == node) {
|
||||
return K_TRUE;
|
||||
}
|
||||
|
||||
slist = slist->next;
|
||||
}
|
||||
|
||||
return K_FALSE;
|
||||
}
|
||||
__API__ __STATIC_INLINE__ int tos_slist_empty(k_slist_t *slist)
|
||||
{
|
||||
return !slist->next;
|
||||
|
@@ -120,19 +120,17 @@ __API__ k_err_t tos_bin_heap_create(k_bin_heap_t *bin_heap, void *pool, size_t i
|
||||
TOS_PTR_SANITY_CHECK(pool);
|
||||
TOS_PTR_SANITY_CHECK(cmp);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&bin_heap->knl_obj, KNL_OBJ_TYPE_BINARY_HEAP);
|
||||
#endif
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_set_static(&bin_heap->knl_obj);
|
||||
#endif
|
||||
|
||||
bin_heap->total = 0;
|
||||
bin_heap->cmp = cmp;
|
||||
bin_heap->item_size = item_size;
|
||||
bin_heap->item_cnt = item_cnt;
|
||||
bin_heap->pool = (uint8_t *)pool;
|
||||
|
||||
TOS_OBJ_INIT(bin_heap, KNL_OBJ_TYPE_BINARY_HEAP);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_set_static(&bin_heap->knl_obj);
|
||||
#endif
|
||||
|
||||
return K_ERR_NONE;
|
||||
}
|
||||
|
||||
@@ -153,9 +151,7 @@ __API__ k_err_t tos_bin_heap_destroy(k_bin_heap_t *bin_heap)
|
||||
bin_heap->item_cnt = 0;
|
||||
bin_heap->pool = K_NULL;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&bin_heap->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(bin_heap);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_reset(&bin_heap->knl_obj);
|
||||
#endif
|
||||
@@ -183,9 +179,7 @@ __API__ k_err_t tos_bin_heap_create_dyn(k_bin_heap_t *bin_heap, size_t item_cnt,
|
||||
bin_heap->item_cnt = item_cnt;
|
||||
bin_heap->pool = (uint8_t *)pool;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&bin_heap->knl_obj, KNL_OBJ_TYPE_BINARY_HEAP);
|
||||
#endif
|
||||
TOS_OBJ_INIT(bin_heap, KNL_OBJ_TYPE_BINARY_HEAP);
|
||||
knl_object_alloc_set_dynamic(&bin_heap->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
@@ -208,9 +202,7 @@ __API__ k_err_t tos_bin_heap_destroy_dyn(k_bin_heap_t *bin_heap)
|
||||
bin_heap->item_cnt = 0;
|
||||
bin_heap->pool = K_NULL;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&bin_heap->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(bin_heap);
|
||||
knl_object_alloc_reset(&bin_heap->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
|
@@ -29,9 +29,7 @@ __API__ k_err_t tos_chr_fifo_create(k_chr_fifo_t *chr_fifo, void *buffer, size_t
|
||||
return err;
|
||||
}
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&chr_fifo->knl_obj, KNL_OBJ_TYPE_CHAR_FIFO);
|
||||
#endif
|
||||
TOS_OBJ_INIT(chr_fifo, KNL_OBJ_TYPE_CHAR_FIFO);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_set_static(&chr_fifo->knl_obj);
|
||||
#endif
|
||||
@@ -57,9 +55,7 @@ __API__ k_err_t tos_chr_fifo_destroy(k_chr_fifo_t *chr_fifo)
|
||||
return err;
|
||||
}
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&chr_fifo->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(chr_fifo);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_reset(&chr_fifo->knl_obj);
|
||||
#endif
|
||||
@@ -80,9 +76,7 @@ __API__ k_err_t tos_chr_fifo_create_dyn(k_chr_fifo_t *chr_fifo, size_t fifo_size
|
||||
return err;
|
||||
}
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&chr_fifo->knl_obj, KNL_OBJ_TYPE_CHAR_FIFO);
|
||||
#endif
|
||||
TOS_OBJ_INIT(chr_fifo, KNL_OBJ_TYPE_CHAR_FIFO);
|
||||
knl_object_alloc_set_dynamic(&chr_fifo->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
@@ -104,9 +98,7 @@ __API__ k_err_t tos_chr_fifo_destroy_dyn(k_chr_fifo_t *chr_fifo)
|
||||
return err;
|
||||
}
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&chr_fifo->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(chr_fifo);
|
||||
knl_object_alloc_reset(&chr_fifo->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
|
@@ -23,12 +23,9 @@ __API__ k_err_t tos_completion_create(k_completion_t *completion)
|
||||
{
|
||||
TOS_PTR_SANITY_CHECK(completion);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&completion->knl_obj, KNL_OBJ_TYPE_COMPLETION);
|
||||
#endif
|
||||
|
||||
pend_object_init(&completion->pend_obj);
|
||||
completion->done = (completion_done_t)0u;
|
||||
pend_object_init(&completion->pend_obj);
|
||||
TOS_OBJ_INIT(completion, KNL_OBJ_TYPE_COMPLETION);
|
||||
|
||||
return K_ERR_NONE;
|
||||
}
|
||||
@@ -48,9 +45,7 @@ __API__ k_err_t tos_completion_destroy(k_completion_t *completion)
|
||||
|
||||
pend_object_deinit(&completion->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&completion->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(completion);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
knl_sched();
|
||||
|
@@ -23,12 +23,9 @@ __API__ k_err_t tos_countdownlatch_create(k_countdownlatch_t *countdownlatch, k_
|
||||
{
|
||||
TOS_PTR_SANITY_CHECK(countdownlatch);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&countdownlatch->knl_obj, KNL_OBJ_TYPE_COUNTDOWNLATCH);
|
||||
#endif
|
||||
|
||||
pend_object_init(&countdownlatch->pend_obj);
|
||||
countdownlatch->count = count;
|
||||
pend_object_init(&countdownlatch->pend_obj);
|
||||
TOS_OBJ_INIT(countdownlatch, KNL_OBJ_TYPE_COUNTDOWNLATCH);
|
||||
|
||||
return K_ERR_NONE;
|
||||
}
|
||||
@@ -48,9 +45,7 @@ __API__ k_err_t tos_countdownlatch_destroy(k_countdownlatch_t *countdownlatch)
|
||||
|
||||
pend_object_deinit(&countdownlatch->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&countdownlatch->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(countdownlatch);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
knl_sched();
|
||||
|
@@ -23,12 +23,10 @@ __API__ k_err_t tos_event_create(k_event_t *event, k_event_flag_t init_flag)
|
||||
{
|
||||
TOS_PTR_SANITY_CHECK(event);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&event->knl_obj, KNL_OBJ_TYPE_EVENT);
|
||||
#endif
|
||||
|
||||
pend_object_init(&event->pend_obj);
|
||||
event->flag = init_flag;
|
||||
pend_object_init(&event->pend_obj);
|
||||
TOS_OBJ_INIT(event, KNL_OBJ_TYPE_EVENT);
|
||||
|
||||
return K_ERR_NONE;
|
||||
}
|
||||
|
||||
@@ -45,12 +43,11 @@ __API__ k_err_t tos_event_destroy(k_event_t *event)
|
||||
pend_wakeup_all(&event->pend_obj, PEND_STATE_DESTROY);
|
||||
}
|
||||
|
||||
pend_object_deinit(&event->pend_obj);
|
||||
event->flag = (k_event_flag_t)0u;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&event->knl_obj);
|
||||
#endif
|
||||
pend_object_deinit(&event->pend_obj);
|
||||
|
||||
TOS_OBJ_DEINIT(event);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
knl_sched();
|
||||
|
@@ -32,9 +32,7 @@ __API__ k_err_t tos_mail_q_create(k_mail_q_t *mail_q, void *pool, size_t mail_cn
|
||||
|
||||
pend_object_init(&mail_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&mail_q->knl_obj, KNL_OBJ_TYPE_MAIL_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(mail_q, KNL_OBJ_TYPE_MAIL_QUEUE);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_set_static(&mail_q->knl_obj);
|
||||
#endif
|
||||
@@ -70,9 +68,7 @@ __API__ k_err_t tos_mail_q_destroy(k_mail_q_t *mail_q)
|
||||
|
||||
pend_object_deinit(&mail_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&mail_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(mail_q);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_reset(&mail_q->knl_obj);
|
||||
#endif
|
||||
@@ -98,9 +94,7 @@ __API__ k_err_t tos_mail_q_create_dyn(k_mail_q_t *mail_q, size_t mail_cnt, size_
|
||||
|
||||
pend_object_init(&mail_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&mail_q->knl_obj, KNL_OBJ_TYPE_MAIL_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(mail_q, KNL_OBJ_TYPE_MAIL_QUEUE);
|
||||
knl_object_alloc_set_dynamic(&mail_q->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
@@ -132,9 +126,7 @@ __API__ k_err_t tos_mail_q_destroy_dyn(k_mail_q_t *mail_q)
|
||||
|
||||
pend_object_deinit(&mail_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&mail_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(mail_q);
|
||||
knl_object_alloc_reset(&mail_q->knl_obj);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
|
@@ -33,9 +33,7 @@ __API__ k_err_t tos_msg_q_create(k_msg_q_t *msg_q, void *pool, size_t msg_cnt)
|
||||
|
||||
pend_object_init(&msg_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&msg_q->knl_obj, KNL_OBJ_TYPE_MESSAGE_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(msg_q, KNL_OBJ_TYPE_MESSAGE_QUEUE);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_set_static(&msg_q->knl_obj);
|
||||
#endif
|
||||
@@ -71,9 +69,7 @@ __API__ k_err_t tos_msg_q_destroy(k_msg_q_t *msg_q)
|
||||
|
||||
pend_object_deinit(&msg_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&msg_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(msg_q);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_reset(&msg_q->knl_obj);
|
||||
#endif
|
||||
@@ -99,9 +95,7 @@ __API__ k_err_t tos_msg_q_create_dyn(k_msg_q_t *msg_q, size_t msg_cnt)
|
||||
|
||||
pend_object_init(&msg_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&msg_q->knl_obj, KNL_OBJ_TYPE_MESSAGE_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(msg_q, KNL_OBJ_TYPE_MESSAGE_QUEUE);
|
||||
knl_object_alloc_set_dynamic(&msg_q->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
@@ -133,9 +127,7 @@ __API__ k_err_t tos_msg_q_destroy_dyn(k_msg_q_t *msg_q)
|
||||
|
||||
pend_object_deinit(&msg_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&msg_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(msg_q);
|
||||
knl_object_alloc_reset(&msg_q->knl_obj);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
|
@@ -46,15 +46,14 @@ __API__ k_err_t tos_mmblk_pool_create(k_mmblk_pool_t *mbp, void *pool_start, siz
|
||||
}
|
||||
*(void **)blk_next = K_NULL;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&mbp->knl_obj, KNL_OBJ_TYPE_MMBLK_POOL);
|
||||
#endif
|
||||
|
||||
mbp->pool_start = pool_start;
|
||||
mbp->free_list = pool_start;
|
||||
mbp->blk_free = blk_num;
|
||||
mbp->blk_max = blk_num;
|
||||
mbp->blk_size = blk_size;
|
||||
|
||||
TOS_OBJ_INIT(mbp, KNL_OBJ_TYPE_MMBLK_POOL);
|
||||
|
||||
return K_ERR_NONE;
|
||||
}
|
||||
|
||||
@@ -69,9 +68,7 @@ __API__ k_err_t tos_mmblk_pool_destroy(k_mmblk_pool_t *mbp)
|
||||
mbp->blk_max = 0;
|
||||
mbp->blk_size = 0;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&mbp->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(mbp);
|
||||
|
||||
return K_ERR_NONE;
|
||||
}
|
||||
|
@@ -72,16 +72,14 @@ __API__ k_err_t tos_mutex_create(k_mutex_t *mutex)
|
||||
TOS_IN_IRQ_CHECK();
|
||||
TOS_PTR_SANITY_CHECK(mutex);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&mutex->knl_obj, KNL_OBJ_TYPE_MUTEX);
|
||||
#endif
|
||||
|
||||
pend_object_init(&mutex->pend_obj);
|
||||
mutex->pend_nesting = (k_nesting_t)0u;
|
||||
mutex->owner = K_NULL;
|
||||
mutex->owner_orig_prio = K_TASK_PRIO_INVALID;
|
||||
tos_list_init(&mutex->owner_anchor);
|
||||
|
||||
TOS_OBJ_INIT(mutex, KNL_OBJ_TYPE_MUTEX);
|
||||
|
||||
return K_ERR_NONE;
|
||||
}
|
||||
|
||||
@@ -105,9 +103,7 @@ __API__ k_err_t tos_mutex_destroy(k_mutex_t *mutex)
|
||||
|
||||
pend_object_deinit(&mutex->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&mutex->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(mutex);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
knl_sched();
|
||||
|
@@ -40,9 +40,7 @@ __API__ k_err_t tos_prio_mail_q_create(k_prio_mail_q_t *prio_mail_q, void *pool,
|
||||
prio_mail_q->prio_q_mgr_array = prio_q_mgr_array;
|
||||
pend_object_init(&prio_mail_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&prio_mail_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_MAIL_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(prio_mail_q, KNL_OBJ_TYPE_PRIORITY_MAIL_QUEUE);
|
||||
knl_object_alloc_set_static(&prio_mail_q->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
@@ -77,9 +75,7 @@ __API__ k_err_t tos_prio_mail_q_destroy(k_prio_mail_q_t *prio_mail_q)
|
||||
|
||||
pend_object_deinit(&prio_mail_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&prio_mail_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(prio_mail_q);
|
||||
knl_object_alloc_reset(&prio_mail_q->knl_obj);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
@@ -101,9 +97,7 @@ __API__ k_err_t tos_prio_mail_q_create_dyn(k_prio_mail_q_t *prio_mail_q, size_t
|
||||
|
||||
pend_object_init(&prio_mail_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&prio_mail_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_MAIL_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(prio_mail_q, KNL_OBJ_TYPE_PRIORITY_MAIL_QUEUE);
|
||||
knl_object_alloc_set_dynamic(&prio_mail_q->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
@@ -135,9 +129,7 @@ __API__ k_err_t tos_prio_mail_q_destroy_dyn(k_prio_mail_q_t *prio_mail_q)
|
||||
|
||||
pend_object_deinit(&prio_mail_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&prio_mail_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(prio_mail_q);
|
||||
knl_object_alloc_reset(&prio_mail_q->knl_obj);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
|
@@ -40,9 +40,7 @@ __API__ k_err_t tos_prio_msg_q_create(k_prio_msg_q_t *prio_msg_q, void *pool, si
|
||||
prio_msg_q->prio_q_mgr_array = prio_q_mgr_array;
|
||||
pend_object_init(&prio_msg_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&prio_msg_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_MESSAGE_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(prio_msg_q, KNL_OBJ_TYPE_PRIORITY_MESSAGE_QUEUE);
|
||||
knl_object_alloc_set_static(&prio_msg_q->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
@@ -77,9 +75,7 @@ __API__ k_err_t tos_prio_msg_q_destroy(k_prio_msg_q_t *prio_msg_q)
|
||||
|
||||
pend_object_deinit(&prio_msg_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&prio_msg_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(prio_msg_q);
|
||||
knl_object_alloc_reset(&prio_msg_q->knl_obj);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
@@ -101,9 +97,7 @@ __API__ k_err_t tos_prio_msg_q_create_dyn(k_prio_msg_q_t *prio_msg_q, size_t msg
|
||||
|
||||
pend_object_init(&prio_msg_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&prio_msg_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_MESSAGE_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(prio_msg_q, KNL_OBJ_TYPE_PRIORITY_MESSAGE_QUEUE);
|
||||
knl_object_alloc_set_dynamic(&prio_msg_q->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
@@ -138,9 +132,7 @@ __API__ k_err_t tos_prio_msg_q_destroy_dyn(k_prio_msg_q_t *prio_msg_q)
|
||||
|
||||
pend_object_deinit(&prio_msg_q->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&prio_msg_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(prio_msg_q);
|
||||
knl_object_alloc_reset(&prio_msg_q->knl_obj);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
|
@@ -179,9 +179,7 @@ __API__ k_err_t tos_prio_q_create(k_prio_q_t *prio_q, void *mgr_array, void *poo
|
||||
prio_q->mgr_pool = (uint8_t *)mgr_array;
|
||||
prio_q->data_pool = (uint8_t *)pool;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&prio_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(prio_q, KNL_OBJ_TYPE_PRIORITY_QUEUE);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_set_static(&prio_q->knl_obj);
|
||||
#endif
|
||||
@@ -209,9 +207,7 @@ __API__ k_err_t tos_prio_q_destroy(k_prio_q_t *prio_q)
|
||||
prio_q->mgr_pool = K_NULL;
|
||||
prio_q->data_pool = K_NULL;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&prio_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(prio_q);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_reset(&prio_q->knl_obj);
|
||||
#endif
|
||||
@@ -271,9 +267,7 @@ __API__ k_err_t tos_prio_q_destroy_dyn(k_prio_q_t *prio_q)
|
||||
prio_q->mgr_pool = K_NULL;
|
||||
prio_q->data_pool = K_NULL;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&prio_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(prio_q);
|
||||
knl_object_alloc_reset(&prio_q->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
|
@@ -55,9 +55,7 @@ __STATIC_INLINE__ void ring_q_item_decrease(k_ring_q_t *ring_q)
|
||||
ring_q->item_size = item_size;
|
||||
ring_q->item_cnt = item_cnt;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&ring_q->knl_obj, KNL_OBJ_TYPE_RING_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(ring_q, KNL_OBJ_TYPE_RING_QUEUE);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_set_static(&ring_q->knl_obj);
|
||||
#endif
|
||||
@@ -84,9 +82,7 @@ __API__ k_err_t tos_ring_q_destroy(k_ring_q_t *ring_q)
|
||||
ring_q->item_size = 0u;
|
||||
ring_q->item_cnt = 0u;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&ring_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(ring_q);
|
||||
#if TOS_CFG_MMHEAP_EN > 0u
|
||||
knl_object_alloc_reset(&ring_q->knl_obj);
|
||||
#endif
|
||||
@@ -115,9 +111,7 @@ __API__ k_err_t tos_ring_q_destroy(k_ring_q_t *ring_q)
|
||||
ring_q->item_size = item_size;
|
||||
ring_q->item_cnt = item_cnt;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&ring_q->knl_obj, KNL_OBJ_TYPE_RING_QUEUE);
|
||||
#endif
|
||||
TOS_OBJ_INIT(ring_q, KNL_OBJ_TYPE_RING_QUEUE);
|
||||
knl_object_alloc_set_dynamic(&ring_q->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
@@ -142,9 +136,7 @@ __API__ k_err_t tos_ring_q_destroy_dyn(k_ring_q_t *ring_q)
|
||||
ring_q->item_size = 0u;
|
||||
ring_q->item_cnt = 0u;
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&ring_q->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(ring_q);
|
||||
knl_object_alloc_reset(&ring_q->knl_obj);
|
||||
|
||||
return K_ERR_NONE;
|
||||
|
@@ -23,13 +23,10 @@ __API__ k_err_t tos_sem_create_max(k_sem_t *sem, k_sem_cnt_t init_count, k_sem_c
|
||||
{
|
||||
TOS_PTR_SANITY_CHECK(sem);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&sem->knl_obj, KNL_OBJ_TYPE_SEMAPHORE);
|
||||
#endif
|
||||
|
||||
pend_object_init(&sem->pend_obj);
|
||||
sem->count = init_count;
|
||||
sem->count_max = max_count;
|
||||
pend_object_init(&sem->pend_obj);
|
||||
TOS_OBJ_INIT(sem, KNL_OBJ_TYPE_SEMAPHORE);
|
||||
|
||||
return K_ERR_NONE;
|
||||
}
|
||||
@@ -54,9 +51,7 @@ __API__ k_err_t tos_sem_destroy(k_sem_t *sem)
|
||||
|
||||
pend_object_deinit(&sem->pend_obj);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&sem->knl_obj);
|
||||
#endif
|
||||
TOS_OBJ_DEINIT(sem);
|
||||
|
||||
TOS_CPU_INT_ENABLE();
|
||||
knl_sched();
|
||||
|
@@ -19,10 +19,6 @@
|
||||
|
||||
__STATIC_INLINE__ void task_reset(k_task_t *task)
|
||||
{
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&task->knl_obj);
|
||||
#endif
|
||||
|
||||
#if TOS_CFG_TASK_DYNAMIC_CREATE_EN > 0u
|
||||
knl_object_alloc_reset(&task->knl_obj);
|
||||
|
||||
@@ -49,6 +45,7 @@ __STATIC_INLINE__ void task_reset(k_task_t *task)
|
||||
task->mail_size = 0;
|
||||
#endif
|
||||
|
||||
TOS_OBJ_DEINIT(task);
|
||||
}
|
||||
|
||||
__STATIC__ void task_exit(void)
|
||||
@@ -114,10 +111,7 @@ __API__ k_err_t tos_task_create(k_task_t *task,
|
||||
task_reset(task);
|
||||
tos_list_add(&task->stat_list, &k_stat_list);
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&task->knl_obj, KNL_OBJ_TYPE_TASK);
|
||||
#endif
|
||||
|
||||
TOS_OBJ_INIT(task, KNL_OBJ_TYPE_TASK);
|
||||
#if TOS_CFG_TASK_DYNAMIC_CREATE_EN > 0u
|
||||
knl_object_alloc_set_static(&task->knl_obj);
|
||||
#endif
|
||||
|
@@ -82,10 +82,6 @@ __STATIC__ void timer_takeoff(k_timer_t *tmr)
|
||||
|
||||
__STATIC_INLINE__ void timer_reset(k_timer_t *tmr)
|
||||
{
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_deinit(&tmr->knl_obj);
|
||||
#endif
|
||||
|
||||
tmr->state = TIMER_STATE_UNUSED;
|
||||
tmr->delay = (k_tick_t)0u;
|
||||
tmr->expires = (k_tick_t)0u;
|
||||
@@ -94,6 +90,8 @@ __STATIC_INLINE__ void timer_reset(k_timer_t *tmr)
|
||||
tmr->cb = K_NULL;
|
||||
tmr->cb_arg = K_NULL;
|
||||
tos_list_init(&tmr->list);
|
||||
|
||||
TOS_OBJ_DEINIT(tmr);
|
||||
}
|
||||
|
||||
__API__ k_err_t tos_timer_create(k_timer_t *tmr,
|
||||
@@ -127,10 +125,6 @@ __API__ k_err_t tos_timer_create(k_timer_t *tmr,
|
||||
return K_ERR_TIMER_PERIOD_FOREVER;
|
||||
}
|
||||
|
||||
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
|
||||
knl_object_init(&tmr->knl_obj, KNL_OBJ_TYPE_TIMER);
|
||||
#endif
|
||||
|
||||
tmr->state = TIMER_STATE_STOPPED;
|
||||
tmr->delay = delay;
|
||||
tmr->expires = (k_tick_t)0u;
|
||||
@@ -139,6 +133,9 @@ __API__ k_err_t tos_timer_create(k_timer_t *tmr,
|
||||
tmr->cb = callback;
|
||||
tmr->cb_arg = cb_arg;
|
||||
tos_list_init(&tmr->list);
|
||||
|
||||
TOS_OBJ_INIT(tmr, KNL_OBJ_TYPE_TIMER);
|
||||
|
||||
return K_ERR_NONE;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user