/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _LINUX_FTRACE_IRQ_H #define _LINUX_FTRACE_IRQ_H #ifdef CONFIG_FTRACE_NMI_ENTER extern void arch_ftrace_nmi_enter(void); extern void arch_ftrace_nmi_exit(void); #else static inline void arch_ftrace_nmi_enter(void) { } static inline void arch_ftrace_nmi_exit(void) { } #endif #ifdef CONFIG_HWLAT_TRACER extern bool trace_hwlat_callback_enabled; extern void trace_hwlat_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 arch_ftrace_nmi_enter(); } static inline void ftrace_nmi_exit(void) { arch_ftrace_nmi_exit(); #ifdef CONFIG_HWLAT_TRACER if (trace_hwlat_callback_enabled) trace_hwlat_callback(false); #endif } #endif /* _LINUX_FTRACE_IRQ_H */