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 */
|