提交 b1f15366 编写于 作者: B Bernard Xiong

[kernel] Add thread_inited_hook.

上级 0a0f0406
...@@ -156,7 +156,8 @@ void rt_thread_timeout(void *parameter); ...@@ -156,7 +156,8 @@ void rt_thread_timeout(void *parameter);
#ifdef RT_USING_HOOK #ifdef RT_USING_HOOK
void rt_thread_suspend_sethook(void (*hook)(rt_thread_t thread)); void rt_thread_suspend_sethook(void (*hook)(rt_thread_t thread));
void rt_thread_resume_sethook(void (*hook)(rt_thread_t thread)); void rt_thread_resume_sethook (void (*hook)(rt_thread_t thread));
void rt_thread_inited_sethook (void (*hook)(rt_thread_t thread));
#endif #endif
/* /*
......
...@@ -48,7 +48,9 @@ extern rt_list_t rt_thread_defunct; ...@@ -48,7 +48,9 @@ extern rt_list_t rt_thread_defunct;
#ifdef RT_USING_HOOK #ifdef RT_USING_HOOK
static void (*rt_thread_suspend_hook)(rt_thread_t thread); static void (*rt_thread_suspend_hook)(rt_thread_t thread);
static void (*rt_thread_resume_hook)(rt_thread_t thread); static void (*rt_thread_resume_hook) (rt_thread_t thread);
static void (*rt_thread_inited_hook) (rt_thread_t thread);
/** /**
* @ingroup Hook * @ingroup Hook
* This function sets a hook function when the system suspend a thread. * This function sets a hook function when the system suspend a thread.
...@@ -61,6 +63,7 @@ void rt_thread_suspend_sethook(void (*hook)(rt_thread_t thread)) ...@@ -61,6 +63,7 @@ void rt_thread_suspend_sethook(void (*hook)(rt_thread_t thread))
{ {
rt_thread_suspend_hook = hook; rt_thread_suspend_hook = hook;
} }
/** /**
* @ingroup Hook * @ingroup Hook
* This function sets a hook function when the system resume a thread. * This function sets a hook function when the system resume a thread.
...@@ -73,6 +76,18 @@ void rt_thread_resume_sethook(void (*hook)(rt_thread_t thread)) ...@@ -73,6 +76,18 @@ void rt_thread_resume_sethook(void (*hook)(rt_thread_t thread))
{ {
rt_thread_resume_hook = hook; rt_thread_resume_hook = hook;
} }
/**
* @ingroup Hook
* This function sets a hook function when a thread is initialized.
*
* @param hook the specified hook function
*/
void rt_thread_inited_sethook(void (*hook)(rt_thread_t thread))
{
rt_thread_inited_hook = hook;
}
#endif #endif
void rt_thread_exit(void) void rt_thread_exit(void)
...@@ -162,6 +177,8 @@ static rt_err_t _rt_thread_init(struct rt_thread *thread, ...@@ -162,6 +177,8 @@ static rt_err_t _rt_thread_init(struct rt_thread *thread,
0, 0,
RT_TIMER_FLAG_ONE_SHOT); RT_TIMER_FLAG_ONE_SHOT);
RT_OBJECT_HOOK_CALL(rt_thread_inited_hook,(thread));
return RT_EOK; return RT_EOK;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册