aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/nmi.h
blob: 98b5e04341bf0e047ef2c7f8179e84c80126c3db (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
#ifndef ASM_NMI_H
#define ASM_NMI_H

#include <public/nmi.h>

struct cpu_user_regs;

/* Watchdog boolean from the command line */
extern bool_t opt_watchdog;
 
typedef int (*nmi_callback_t)(struct cpu_user_regs *regs, int cpu);
 
/** 
 * set_nmi_callback
 *
 * Set a handler for an NMI. Only one handler may be
 * set. Return 1 if the NMI was handled.
 */
void set_nmi_callback(nmi_callback_t callback);
 
/** 
 * unset_nmi_callback
 *
 * Remove the handler previously set.
 */
void unset_nmi_callback(void);
 
/**
 * register_guest_nmi_callback
 *
 * The default NMI handler passes the NMI to a guest callback. This
 * function registers the address of that callback.
 */
long register_guest_nmi_callback(unsigned long address);

/**
 * unregister_guest_nmi_callback
 *
 * Unregister a guest NMI handler.
 */
long unregister_guest_nmi_callback(void);

#endif /* ASM_NMI_H */