Lines Matching full:name
21 #define DECLARE_RV_REACTING_HELPERS(name, type) \ argument
22 static char REACT_MSG_##name[1024]; \
24 static inline char *format_react_msg_##name(type curr_state, type event) \
26 snprintf(REACT_MSG_##name, 1024, \
28 #name, \
29 model_get_event_name_##name(event), \
30 model_get_state_name_##name(curr_state)); \
31 return REACT_MSG_##name; \
34 static void cond_react_##name(char *msg) \
36 if (rv_##name.react) \
37 rv_##name.react(msg); \
40 static bool rv_reacting_on_##name(void) \
47 #define DECLARE_RV_REACTING_HELPERS(name, type) \ argument
48 static inline char *format_react_msg_##name(type curr_state, type event) \
53 static void cond_react_##name(char *msg) \
58 static bool rv_reacting_on_##name(void) \
67 #define DECLARE_DA_MON_GENERIC_HELPERS(name, type) \ argument
69 DECLARE_RV_REACTING_HELPERS(name, type) \
72 * da_monitor_reset_##name - reset a monitor and setting it to init state \
74 static inline void da_monitor_reset_##name(struct da_monitor *da_mon) \
77 da_mon->curr_state = model_get_initial_state_##name(); \
81 * da_monitor_curr_state_##name - return the current state \
83 static inline type da_monitor_curr_state_##name(struct da_monitor *da_mon) \
89 * da_monitor_set_state_##name - set the new current state \
92 da_monitor_set_state_##name(struct da_monitor *da_mon, enum states_##name state) \
98 * da_monitor_start_##name - start monitoring \
103 static inline void da_monitor_start_##name(struct da_monitor *da_mon) \
105 da_mon->curr_state = model_get_initial_state_##name(); \
110 * da_monitoring_##name - returns true if the monitor is processing events \
112 static inline bool da_monitoring_##name(struct da_monitor *da_mon) \
118 * da_monitor_enabled_##name - checks if the monitor is enabled \
120 static inline bool da_monitor_enabled_##name(void) \
127 if (unlikely(!rv_##name.enabled)) \
134 * da_monitor_handling_event_##name - checks if the monitor is ready to handle events \
136 static inline bool da_monitor_handling_event_##name(struct da_monitor *da_mon) \
139 if (!da_monitor_enabled_##name()) \
143 if (unlikely(!da_monitoring_##name(da_mon))) \
154 #define DECLARE_DA_MON_MODEL_HANDLER_IMPLICIT(name, type) \ argument
157 da_event_##name(struct da_monitor *da_mon, enum events_##name event) \
159 type curr_state = da_monitor_curr_state_##name(da_mon); \
160 type next_state = model_get_next_state_##name(curr_state, event); \
163 da_monitor_set_state_##name(da_mon, next_state); \
165 trace_event_##name(model_get_state_name_##name(curr_state), \
166 model_get_event_name_##name(event), \
167 model_get_state_name_##name(next_state), \
168 model_is_final_state_##name(next_state)); \
173 if (rv_reacting_on_##name()) \
174 cond_react_##name(format_react_msg_##name(curr_state, event)); \
176 trace_error_##name(model_get_state_name_##name(curr_state), \
177 model_get_event_name_##name(event)); \
185 #define DECLARE_DA_MON_MODEL_HANDLER_PER_TASK(name, type) \ argument
187 static inline bool da_event_##name(struct da_monitor *da_mon, struct task_struct *tsk, \
188 enum events_##name event) \
190 type curr_state = da_monitor_curr_state_##name(da_mon); \
191 type next_state = model_get_next_state_##name(curr_state, event); \
194 da_monitor_set_state_##name(da_mon, next_state); \
196 trace_event_##name(tsk->pid, \
197 model_get_state_name_##name(curr_state), \
198 model_get_event_name_##name(event), \
199 model_get_state_name_##name(next_state), \
200 model_is_final_state_##name(next_state)); \
205 if (rv_reacting_on_##name()) \
206 cond_react_##name(format_react_msg_##name(curr_state, event)); \
208 trace_error_##name(tsk->pid, \
209 model_get_state_name_##name(curr_state), \
210 model_get_event_name_##name(event)); \
218 #define DECLARE_DA_MON_INIT_GLOBAL(name, type) \ argument
223 static struct da_monitor da_mon_##name; \
226 * da_get_monitor_##name - return the global monitor address \
228 static struct da_monitor *da_get_monitor_##name(void) \
230 return &da_mon_##name; \
234 * da_monitor_reset_all_##name - reset the single monitor \
236 static void da_monitor_reset_all_##name(void) \
238 da_monitor_reset_##name(da_get_monitor_##name()); \
242 * da_monitor_init_##name - initialize a monitor \
244 static inline int da_monitor_init_##name(void) \
246 da_monitor_reset_all_##name(); \
251 * da_monitor_destroy_##name - destroy the monitor \
253 static inline void da_monitor_destroy_##name(void) \
261 #define DECLARE_DA_MON_INIT_PER_CPU(name, type) \ argument
266 static DEFINE_PER_CPU(struct da_monitor, da_mon_##name); \
269 * da_get_monitor_##name - return current CPU monitor address \
271 static struct da_monitor *da_get_monitor_##name(void) \
273 return this_cpu_ptr(&da_mon_##name); \
277 * da_monitor_reset_all_##name - reset all CPUs' monitor \
279 static void da_monitor_reset_all_##name(void) \
284 da_mon = per_cpu_ptr(&da_mon_##name, cpu); \
285 da_monitor_reset_##name(da_mon); \
290 * da_monitor_init_##name - initialize all CPUs' monitor \
292 static inline int da_monitor_init_##name(void) \
294 da_monitor_reset_all_##name(); \
299 * da_monitor_destroy_##name - destroy the monitor \
301 static inline void da_monitor_destroy_##name(void) \
309 #define DECLARE_DA_MON_INIT_PER_TASK(name, type) \ argument
315 static int task_mon_slot_##name = RV_PER_TASK_MONITOR_INIT; \
318 * da_get_monitor_##name - return the monitor in the allocated slot for tsk \
320 static inline struct da_monitor *da_get_monitor_##name(struct task_struct *tsk) \
322 return &tsk->rv[task_mon_slot_##name].da_mon; \
325 static void da_monitor_reset_all_##name(void) \
332 da_monitor_reset_##name(da_get_monitor_##name(p)); \
334 da_monitor_reset_##name(da_get_monitor_##name(idle_task(cpu))); \
339 * da_monitor_init_##name - initialize the per-task monitor \
344 static int da_monitor_init_##name(void) \
352 task_mon_slot_##name = slot; \
354 da_monitor_reset_all_##name(); \
359 * da_monitor_destroy_##name - return the allocated slot \
361 static inline void da_monitor_destroy_##name(void) \
363 if (task_mon_slot_##name == RV_PER_TASK_MONITOR_INIT) { \
364 WARN_ONCE(1, "Disabling a disabled monitor: " #name); \
367 rv_put_task_monitor_slot(task_mon_slot_##name); \
368 task_mon_slot_##name = RV_PER_TASK_MONITOR_INIT; \
373 * Handle event for implicit monitor: da_get_monitor_##name() will figure out
376 #define DECLARE_DA_MON_MONITOR_HANDLER_IMPLICIT(name, type) \ argument
378 static inline void __da_handle_event_##name(struct da_monitor *da_mon, \
379 enum events_##name event) \
383 retval = da_event_##name(da_mon, event); \
385 da_monitor_reset_##name(da_mon); \
389 * da_handle_event_##name - handle an event \
391 static inline void da_handle_event_##name(enum events_##name event) \
393 struct da_monitor *da_mon = da_get_monitor_##name(); \
396 retval = da_monitor_handling_event_##name(da_mon); \
400 __da_handle_event_##name(da_mon, event); \
404 * da_handle_start_event_##name - start monitoring or handle event \
413 static inline bool da_handle_start_event_##name(enum events_##name event) \
417 if (!da_monitor_enabled_##name()) \
420 da_mon = da_get_monitor_##name(); \
422 if (unlikely(!da_monitoring_##name(da_mon))) { \
423 da_monitor_start_##name(da_mon); \
427 __da_handle_event_##name(da_mon, event); \
433 * da_handle_start_run_event_##name - start monitoring and handle event \
438 static inline bool da_handle_start_run_event_##name(enum events_##name event) \
442 if (!da_monitor_enabled_##name()) \
445 da_mon = da_get_monitor_##name(); \
447 if (unlikely(!da_monitoring_##name(da_mon))) \
448 da_monitor_start_##name(da_mon); \
450 __da_handle_event_##name(da_mon, event); \
458 #define DECLARE_DA_MON_MONITOR_HANDLER_PER_TASK(name, type) \ argument
461 __da_handle_event_##name(struct da_monitor *da_mon, struct task_struct *tsk, \
462 enum events_##name event) \
466 retval = da_event_##name(da_mon, tsk, event); \
468 da_monitor_reset_##name(da_mon); \
472 * da_handle_event_##name - handle an event \
475 da_handle_event_##name(struct task_struct *tsk, enum events_##name event) \
477 struct da_monitor *da_mon = da_get_monitor_##name(tsk); \
480 retval = da_monitor_handling_event_##name(da_mon); \
484 __da_handle_event_##name(da_mon, tsk, event); \
488 * da_handle_start_event_##name - start monitoring or handle event \
498 da_handle_start_event_##name(struct task_struct *tsk, enum events_##name event) \
502 if (!da_monitor_enabled_##name()) \
505 da_mon = da_get_monitor_##name(tsk); \
507 if (unlikely(!da_monitoring_##name(da_mon))) { \
508 da_monitor_start_##name(da_mon); \
512 __da_handle_event_##name(da_mon, tsk, event); \
520 #define DECLARE_DA_MON_GLOBAL(name, type) \ argument
522 DECLARE_AUTOMATA_HELPERS(name, type) \
523 DECLARE_DA_MON_GENERIC_HELPERS(name, type) \
524 DECLARE_DA_MON_MODEL_HANDLER_IMPLICIT(name, type) \
525 DECLARE_DA_MON_INIT_GLOBAL(name, type) \
526 DECLARE_DA_MON_MONITOR_HANDLER_IMPLICIT(name, type)
531 #define DECLARE_DA_MON_PER_CPU(name, type) \ argument
533 DECLARE_AUTOMATA_HELPERS(name, type) \
534 DECLARE_DA_MON_GENERIC_HELPERS(name, type) \
535 DECLARE_DA_MON_MODEL_HANDLER_IMPLICIT(name, type) \
536 DECLARE_DA_MON_INIT_PER_CPU(name, type) \
537 DECLARE_DA_MON_MONITOR_HANDLER_IMPLICIT(name, type)
542 #define DECLARE_DA_MON_PER_TASK(name, type) \ argument
544 DECLARE_AUTOMATA_HELPERS(name, type) \
545 DECLARE_DA_MON_GENERIC_HELPERS(name, type) \
546 DECLARE_DA_MON_MODEL_HANDLER_PER_TASK(name, type) \
547 DECLARE_DA_MON_INIT_PER_TASK(name, type) \
548 DECLARE_DA_MON_MONITOR_HANDLER_PER_TASK(name, type)