On Mon, 2026-06-08 at 00:13 +0800, [email protected] wrote: > From: Wen Yang <[email protected]> > > Wrap the two definitions with #ifndef guards so that HA-based > monitors > can substitute their own implementations before including this > header: > > /* in monitor.c, before #include <rv/ha_monitor.h> */ > #define da_monitor_reset_hook my_monitor_reset_env > #define EVENT_NONE_LBL "idle" > > No behaviour change for monitors that do not override either macro. > > Signed-off-by: Wen Yang <[email protected]> > --- > include/rv/ha_monitor.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/include/rv/ha_monitor.h b/include/rv/ha_monitor.h > index e5860900a337..610da54c111f 100644 > --- a/include/rv/ha_monitor.h > +++ b/include/rv/ha_monitor.h > @@ -36,7 +36,10 @@ static bool ha_monitor_handle_constraint(struct > da_monitor *da_mon, > da_id_type id); > #define da_monitor_event_hook ha_monitor_handle_constraint > #define da_monitor_init_hook ha_monitor_init_env > +/* Allow monitors to override da_monitor_reset_hook before including > this header. */
Just a nit: users can do that but shouldn't do it mindlessly, so let's add a line like: "Make sure you still call ha_monitor_reset_env() or reset timers otherwise." Other than that looks good Reviewed-by: Gabriele Monaco <[email protected]> Thanks, Gabriele > +#ifndef da_monitor_reset_hook > #define da_monitor_reset_hook ha_monitor_reset_env > +#endif > #define da_monitor_sync_hook() synchronize_rcu() > > #if !defined(HA_SKIP_AUTO_CLEANUP) && RV_MON_TYPE == RV_MON_PER_TASK > @@ -75,7 +78,9 @@ _Static_assert(offsetof(struct ha_monitor, da_mon) > == 0, > #define ENV_INVALID_VALUE U64_MAX > /* Error with no event occurs only on timeouts */ > #define EVENT_NONE EVENT_MAX > +#ifndef EVENT_NONE_LBL > #define EVENT_NONE_LBL "none" > +#endif > #define ENV_BUFFER_SIZE 64 > > #ifdef CONFIG_RV_REACTORS
