diff options
| author | tyustli <[email protected]> | 2022-02-13 14:50:51 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-02-13 14:50:51 +0800 |
| commit | 5178e7ec0ba0bb65c1bc9bde4c9421e695abb50a (patch) | |
| tree | 21a674f410b81d6d375299b940faf2256062cb4c /src | |
| parent | d4b5555b7e4901f4d643d74696050e10b510421e (diff) | |
[add] src/clock.c add hook for rt_tick_increase (#5569)
* [add] src/clock.c add hook for rt_tick_increase
* [fix] clock.c rt_tick_incerase hook function
* Update clock.c
Co-authored-by: guo <[email protected]>
Diffstat (limited to 'src')
| -rw-r--r-- | src/clock.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/clock.c b/src/clock.c index 21be3a4203..0e88bf4d61 100644 --- a/src/clock.c +++ b/src/clock.c @@ -26,6 +26,32 @@ static volatile rt_tick_t rt_tick = 0; #endif /* RT_USING_SMP */ +#ifndef __on_rt_tick_hook + #define __on_rt_tick_hook() __ON_HOOK_ARGS(rt_tick_hook, ()) +#endif + +#if defined(RT_USING_HOOK) && defined(RT_HOOK_USING_FUNC_PTR) +static void (*rt_tick_hook)(void); + +/** + * @addtogroup Hook + */ + +/**@{*/ + +/** + * This function will set a hook function, which will be invoked when tick increase + * + * + * @param hook the hook function + */ +void rt_tick_sethook(void (*hook)(void)) +{ + rt_tick_hook = hook; +} +/**@}*/ +#endif /* RT_USING_HOOK */ + /** * @addtogroup Clock */ @@ -67,6 +93,8 @@ void rt_tick_increase(void) struct rt_thread *thread; rt_base_t level; + RT_OBJECT_HOOK_CALL(rt_tick_hook, ()); + level = rt_hw_interrupt_disable(); /* increase the global tick */ |
