linux/arch/x86/include/asm/nmi.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_X86_NMI_H
#define _ASM_X86_NMI_H

#include <linux/irq_work.h>
#include <linux/pm.h>
#include <asm/irq.h>
#include <asm/io.h>

#ifdef CONFIG_X86_LOCAL_APIC

extern int reserve_perfctr_nmi(unsigned int);
extern void release_perfctr_nmi(unsigned int);
extern int reserve_evntsel_nmi(unsigned int);
extern void release_evntsel_nmi(unsigned int);

extern int unknown_nmi_panic;

#endif /* CONFIG_X86_LOCAL_APIC */

#define NMI_FLAG_FIRST

enum {};

#define NMI_DONE
#define NMI_HANDLED

nmi_handler_t;

struct nmiaction {};

#define register_nmi_handler(t, fn, fg, n, init...)

int __register_nmi_handler(unsigned int, struct nmiaction *);

void unregister_nmi_handler(unsigned int, const char *);

void stop_nmi(void);
void restart_nmi(void);
void local_touch_nmi(void);

#endif /* _ASM_X86_NMI_H */