xref: /openbmc/qemu/include/hw/nmi.h (revision f4ef8c9cc10b3bee829b9775879d4ff9f77c2442)
1  /*
2   *  NMI monitor handler class and helpers definitions.
3   *
4   *  Copyright IBM Corp., 2014
5   *
6   *  Author: Alexey Kardashevskiy <aik@ozlabs.ru>
7   *
8   *  This program is free software; you can redistribute it and/or modify
9   *  it under the terms of the GNU General Public License as published by
10   *  the Free Software Foundation; either version 2 of the License,
11   *  or (at your option) any later version.
12   *
13   *  This program is distributed in the hope that it will be useful,
14   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   *  GNU General Public License for more details.
17   *
18   *  You should have received a copy of the GNU General Public License
19   *  along with this program; if not, see <http://www.gnu.org/licenses/>.
20   */
21  
22  #ifndef NMI_H
23  #define NMI_H
24  
25  #include "qom/object.h"
26  
27  #define TYPE_NMI "nmi"
28  
29  typedef struct NMIClass NMIClass;
30  DECLARE_CLASS_CHECKERS(NMIClass, NMI,
31                         TYPE_NMI)
32  #define NMI(obj) \
33       INTERFACE_CHECK(NMIState, (obj), TYPE_NMI)
34  
35  typedef struct NMIState NMIState;
36  
37  struct NMIClass {
38      InterfaceClass parent_class;
39  
40      void (*nmi_monitor_handler)(NMIState *n, int cpu_index, Error **errp);
41  };
42  
43  void nmi_monitor_handle(int cpu_index, Error **errp);
44  
45  #endif /* NMI_H */
46