提交 2bbf98e5 编写于 作者: L liang yongxiang

[kernel] add assert to timer object

上级 0509af93
...@@ -207,6 +207,8 @@ rt_err_t rt_timer_detach(rt_timer_t timer) ...@@ -207,6 +207,8 @@ rt_err_t rt_timer_detach(rt_timer_t timer)
/* timer check */ /* timer check */
RT_ASSERT(timer != RT_NULL); RT_ASSERT(timer != RT_NULL);
RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer);
RT_ASSERT(rt_object_is_systemobject(&timer->parent));
/* disable interrupt */ /* disable interrupt */
level = rt_hw_interrupt_disable(); level = rt_hw_interrupt_disable();
...@@ -268,6 +270,8 @@ rt_err_t rt_timer_delete(rt_timer_t timer) ...@@ -268,6 +270,8 @@ rt_err_t rt_timer_delete(rt_timer_t timer)
/* timer check */ /* timer check */
RT_ASSERT(timer != RT_NULL); RT_ASSERT(timer != RT_NULL);
RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer);
RT_ASSERT(rt_object_is_systemobject(&timer->parent) == RT_FALSE);
/* disable interrupt */ /* disable interrupt */
level = rt_hw_interrupt_disable(); level = rt_hw_interrupt_disable();
...@@ -302,6 +306,7 @@ rt_err_t rt_timer_start(rt_timer_t timer) ...@@ -302,6 +306,7 @@ rt_err_t rt_timer_start(rt_timer_t timer)
/* timer check */ /* timer check */
RT_ASSERT(timer != RT_NULL); RT_ASSERT(timer != RT_NULL);
RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer);
/* stop timer firstly */ /* stop timer firstly */
level = rt_hw_interrupt_disable(); level = rt_hw_interrupt_disable();
...@@ -422,6 +427,8 @@ rt_err_t rt_timer_stop(rt_timer_t timer) ...@@ -422,6 +427,8 @@ rt_err_t rt_timer_stop(rt_timer_t timer)
/* timer check */ /* timer check */
RT_ASSERT(timer != RT_NULL); RT_ASSERT(timer != RT_NULL);
RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer);
if (!(timer->parent.flag & RT_TIMER_FLAG_ACTIVATED)) if (!(timer->parent.flag & RT_TIMER_FLAG_ACTIVATED))
return -RT_ERROR; return -RT_ERROR;
...@@ -455,6 +462,7 @@ rt_err_t rt_timer_control(rt_timer_t timer, int cmd, void *arg) ...@@ -455,6 +462,7 @@ rt_err_t rt_timer_control(rt_timer_t timer, int cmd, void *arg)
{ {
/* timer check */ /* timer check */
RT_ASSERT(timer != RT_NULL); RT_ASSERT(timer != RT_NULL);
RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer);
switch (cmd) switch (cmd)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册