Line data Source code
1 : /*
2 : * linux/include/linux/nmi.h
3 : */
4 : #ifndef LINUX_NMI_H
5 : #define LINUX_NMI_H
6 :
7 : #include <linux/sched.h>
8 : #include <asm/irq.h>
9 :
10 : /**
11 : * touch_nmi_watchdog - restart NMI watchdog timeout.
12 : *
13 : * If the architecture supports the NMI watchdog, touch_nmi_watchdog()
14 : * may be used to reset the timeout - for code which intentionally
15 : * disables interrupts for a long time. This call is stateless.
16 : */
17 : #ifdef ARCH_HAS_NMI_WATCHDOG
18 : #include <asm/nmi.h>
19 : extern void touch_nmi_watchdog(void);
20 : extern void acpi_nmi_disable(void);
21 : extern void acpi_nmi_enable(void);
22 : #else
23 : static inline void touch_nmi_watchdog(void)
24 : {
25 : touch_softlockup_watchdog();
26 : }
27 : static inline void acpi_nmi_disable(void) { }
28 : static inline void acpi_nmi_enable(void) { }
29 : #endif
30 :
31 : /*
32 : * Create trigger_all_cpu_backtrace() out of the arch-provided
33 : * base function. Return whether such support was available,
34 : * to allow calling code to fall back to some other mechanism:
35 : */
36 : #ifdef arch_trigger_all_cpu_backtrace
37 : static inline bool trigger_all_cpu_backtrace(void)
38 : {
39 : arch_trigger_all_cpu_backtrace();
40 :
41 : return true;
42 : }
43 1 : #else
44 : static inline bool trigger_all_cpu_backtrace(void)
45 : {
46 : return false;
47 : }
48 : #endif
49 :
50 : #endif
|