brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · b665fdb Raw
53 lines · c
1/* SPDX-License-Identifier: MIT */2/******************************************************************************3 * nmi.h4 *5 * NMI callback registration and reason codes.6 *7 * Copyright (c) 2005, Keir Fraser <keir@xensource.com>8 */9 10#ifndef __XEN_PUBLIC_NMI_H__11#define __XEN_PUBLIC_NMI_H__12 13#include <xen/interface/xen.h>14 15/*16 * NMI reason codes:17 * Currently these are x86-specific, stored in arch_shared_info.nmi_reason.18 */19 /* I/O-check error reported via ISA port 0x61, bit 6. */20#define _XEN_NMIREASON_io_error     021#define XEN_NMIREASON_io_error      (1UL << _XEN_NMIREASON_io_error)22 /* PCI SERR reported via ISA port 0x61, bit 7. */23#define _XEN_NMIREASON_pci_serr     124#define XEN_NMIREASON_pci_serr      (1UL << _XEN_NMIREASON_pci_serr)25 /* Unknown hardware-generated NMI. */26#define _XEN_NMIREASON_unknown      227#define XEN_NMIREASON_unknown       (1UL << _XEN_NMIREASON_unknown)28 29/*30 * long nmi_op(unsigned int cmd, void *arg)31 * NB. All ops return zero on success, else a negative error code.32 */33 34/*35 * Register NMI callback for this (calling) VCPU. Currently this only makes36 * sense for domain 0, vcpu 0. All other callers will be returned EINVAL.37 * arg == pointer to xennmi_callback structure.38 */39#define XENNMI_register_callback   040struct xennmi_callback {41    unsigned long handler_address;42    unsigned long pad;43};44DEFINE_GUEST_HANDLE_STRUCT(xennmi_callback);45 46/*47 * Deregister NMI callback for this (calling) VCPU.48 * arg == NULL.49 */50#define XENNMI_unregister_callback 151 52#endif /* __XEN_PUBLIC_NMI_H__ */53