[kernel] Add thread_inited_hook.

This commit is contained in:
Bernard Xiong 2017-04-09 19:12:53 +08:00
parent 0a0f04069a
commit b1f1536688
2 changed files with 20 additions and 2 deletions

View File

@ -156,7 +156,8 @@ void rt_thread_timeout(void *parameter);
#ifdef RT_USING_HOOK
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
/*

View File

@ -48,7 +48,9 @@ extern rt_list_t rt_thread_defunct;
#ifdef RT_USING_HOOK
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
* 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))
{
rt_thread_suspend_hook = hook;
}
/**
* @ingroup Hook
* 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))
{
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
void rt_thread_exit(void)
@ -162,6 +177,8 @@ static rt_err_t _rt_thread_init(struct rt_thread *thread,
0,
RT_TIMER_FLAG_ONE_SHOT);
RT_OBJECT_HOOK_CALL(rt_thread_inited_hook,(thread));
return RT_EOK;
}