blob: 9a5da14162cc1adff22d6beb6feff311b81fadd0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#ifndef ASM_NMI_H
#define ASM_NMI_H
#include <public/nmi.h>
struct cpu_user_regs;
/* Watchdog boolean from the command line */
extern bool opt_watchdog;
/* Watchdog force parameter from the command line */
extern bool watchdog_force;
/* CPU to handle platform NMI */
extern const unsigned int nmi_cpu;
typedef int nmi_callback_t(const struct cpu_user_regs *regs, int cpu);
/**
* set_nmi_callback
*
* Set a handler for an NMI. Only one handler may be
* set. Return the old nmi callback handler.
*/
nmi_callback_t *set_nmi_callback(nmi_callback_t *callback);
/**
* unset_nmi_callback
*
* Remove the handler previously set.
*/
void unset_nmi_callback(void);
DECLARE_PER_CPU(unsigned int, nmi_count);
/**
* trigger_nmi_continuation
*
* Schedule continuation to be started in interrupt context after NMI handling.
*/
void trigger_nmi_continuation(void);
/* Check for NMI continuation pending. */
bool nmi_check_continuation(void);
#endif /* ASM_NMI_H */
|