a very simple shell framework

simple, clear, easy to DIY
This commit is contained in:
daishengdong
2020-01-08 13:54:56 +08:00
parent dea65a2d66
commit 72481955e2
66 changed files with 12408 additions and 240 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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;

View File

@@ -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;

View File

@@ -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();

View File

@@ -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

View File

@@ -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;
}