![]() |
|
|||
0001 /* SPDX-License-Identifier: MIT */ 0002 /****************************************************************************** 0003 * nmi.h 0004 * 0005 * NMI callback registration and reason codes. 0006 * 0007 * Copyright (c) 2005, Keir Fraser <keir@xensource.com> 0008 */ 0009 0010 #ifndef __XEN_PUBLIC_NMI_H__ 0011 #define __XEN_PUBLIC_NMI_H__ 0012 0013 #include <xen/interface/xen.h> 0014 0015 /* 0016 * NMI reason codes: 0017 * Currently these are x86-specific, stored in arch_shared_info.nmi_reason. 0018 */ 0019 /* I/O-check error reported via ISA port 0x61, bit 6. */ 0020 #define _XEN_NMIREASON_io_error 0 0021 #define XEN_NMIREASON_io_error (1UL << _XEN_NMIREASON_io_error) 0022 /* PCI SERR reported via ISA port 0x61, bit 7. */ 0023 #define _XEN_NMIREASON_pci_serr 1 0024 #define XEN_NMIREASON_pci_serr (1UL << _XEN_NMIREASON_pci_serr) 0025 /* Unknown hardware-generated NMI. */ 0026 #define _XEN_NMIREASON_unknown 2 0027 #define XEN_NMIREASON_unknown (1UL << _XEN_NMIREASON_unknown) 0028 0029 /* 0030 * long nmi_op(unsigned int cmd, void *arg) 0031 * NB. All ops return zero on success, else a negative error code. 0032 */ 0033 0034 /* 0035 * Register NMI callback for this (calling) VCPU. Currently this only makes 0036 * sense for domain 0, vcpu 0. All other callers will be returned EINVAL. 0037 * arg == pointer to xennmi_callback structure. 0038 */ 0039 #define XENNMI_register_callback 0 0040 struct xennmi_callback { 0041 unsigned long handler_address; 0042 unsigned long pad; 0043 }; 0044 DEFINE_GUEST_HANDLE_STRUCT(xennmi_callback); 0045 0046 /* 0047 * Deregister NMI callback for this (calling) VCPU. 0048 * arg == NULL. 0049 */ 0050 #define XENNMI_unregister_callback 1 0051 0052 #endif /* __XEN_PUBLIC_NMI_H__ */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |