blob: ccda97dc7f8b916fb62942057d3316e9abaa2b0b [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _LINUX_FTRACE_IRQ_H
3#define _LINUX_FTRACE_IRQ_H
4
5
6#ifdef CONFIG_FTRACE_NMI_ENTER
7extern void arch_ftrace_nmi_enter(void);
8extern void arch_ftrace_nmi_exit(void);
9#else
10static inline void arch_ftrace_nmi_enter(void) { }
11static inline void arch_ftrace_nmi_exit(void) { }
12#endif
13
14#ifdef CONFIG_HWLAT_TRACER
15extern bool trace_hwlat_callback_enabled;
16extern void trace_hwlat_callback(bool enter);
17#endif
18
19static inline void ftrace_nmi_enter(void)
20{
21#ifdef CONFIG_HWLAT_TRACER
22 if (trace_hwlat_callback_enabled)
23 trace_hwlat_callback(true);
24#endif
25 arch_ftrace_nmi_enter();
26}
27
28static inline void ftrace_nmi_exit(void)
29{
30 arch_ftrace_nmi_exit();
31#ifdef CONFIG_HWLAT_TRACER
32 if (trace_hwlat_callback_enabled)
33 trace_hwlat_callback(false);
34#endif
35}
36
37#endif /* _LINUX_FTRACE_IRQ_H */