| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef _LINUX_FTRACE_IRQ_H | |
| #define _LINUX_FTRACE_IRQ_H | |
| #ifdef CONFIG_HWLAT_TRACER | |
| extern bool trace_hwlat_callback_enabled; | |
| extern void trace_hwlat_callback(bool enter); | |
| #endif | |
| #ifdef CONFIG_OSNOISE_TRACER | |
| extern bool trace_osnoise_callback_enabled; | |
| extern void trace_osnoise_callback(bool enter); | |
| #endif | |
| static inline void ftrace_nmi_enter(void) | |
| { | |
| #ifdef CONFIG_HWLAT_TRACER | |
| if (trace_hwlat_callback_enabled) | |
| trace_hwlat_callback(true); | |
| #endif | |
| #ifdef CONFIG_OSNOISE_TRACER | |
| if (trace_osnoise_callback_enabled) | |
| trace_osnoise_callback(true); | |
| #endif | |
| } | |
| static inline void ftrace_nmi_exit(void) | |
| { | |
| #ifdef CONFIG_HWLAT_TRACER | |
| if (trace_hwlat_callback_enabled) | |
| trace_hwlat_callback(false); | |
| #endif | |
| #ifdef CONFIG_OSNOISE_TRACER | |
| if (trace_osnoise_callback_enabled) | |
| trace_osnoise_callback(false); | |
| #endif | |
| } | |
| #endif /* _LINUX_FTRACE_IRQ_H */ |