ftrace_irq.h 784 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef _LINUX_FTRACE_IRQ_H
  2. #define _LINUX_FTRACE_IRQ_H
  3. #ifdef CONFIG_FTRACE_NMI_ENTER
  4. extern void arch_ftrace_nmi_enter(void);
  5. extern void arch_ftrace_nmi_exit(void);
  6. #else
  7. static inline void arch_ftrace_nmi_enter(void) { }
  8. static inline void arch_ftrace_nmi_exit(void) { }
  9. #endif
  10. #ifdef CONFIG_HWLAT_TRACER
  11. extern bool trace_hwlat_callback_enabled;
  12. extern void trace_hwlat_callback(bool enter);
  13. #endif
  14. static inline void ftrace_nmi_enter(void)
  15. {
  16. #ifdef CONFIG_HWLAT_TRACER
  17. if (trace_hwlat_callback_enabled)
  18. trace_hwlat_callback(true);
  19. #endif
  20. arch_ftrace_nmi_enter();
  21. }
  22. static inline void ftrace_nmi_exit(void)
  23. {
  24. arch_ftrace_nmi_exit();
  25. #ifdef CONFIG_HWLAT_TRACER
  26. if (trace_hwlat_callback_enabled)
  27. trace_hwlat_callback(false);
  28. #endif
  29. }
  30. #endif /* _LINUX_FTRACE_IRQ_H */