[finsh] feat: add finsh thread entry hook

Signed-off-by: Shell <smokewood@qq.com>
This commit is contained in:
Shell 2024-03-22 10:20:14 +08:00 committed by Meco Man
parent a0e2070dee
commit 3828a9033c
2 changed files with 22 additions and 0 deletions

View File

@ -448,10 +448,28 @@ static void shell_push_history(struct finsh_shell *shell)
}
#endif
#ifdef RT_USING_HOOK
static void (*_finsh_thread_entry_hook)(void);
/**
* @ingroup finsh
*
* @brief This function set a hook function at the entry of finsh thread
*
* @param hook the function point to be called
*/
void finsh_thread_entry_sethook(void (*hook)(void))
{
_finsh_thread_entry_hook = hook;
}
#endif /* RT_USING_HOOK */
static void finsh_thread_entry(void *parameter)
{
int ch;
RT_OBJECT_HOOK_CALL(_finsh_thread_entry_hook, ());
/* normal is echo mode */
#ifndef FINSH_ECHO_DISABLE_DEFAULT
shell->echo_mode = 1;

View File

@ -102,4 +102,8 @@ void finsh_set_prompt_mode(rt_uint32_t prompt_mode);
const char *finsh_get_password(void);
#endif
#ifdef RT_USING_HOOK
void finsh_thread_entry_sethook(void (*hook)(void));
#endif /* RT_USING_HOOK */
#endif