Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.7 65 lines 1.4 kB view raw
1#ifndef _ASM_X86_NMI_H 2#define _ASM_X86_NMI_H 3 4#include <linux/pm.h> 5#include <asm/irq.h> 6#include <asm/io.h> 7 8#ifdef CONFIG_X86_LOCAL_APIC 9 10extern int avail_to_resrv_perfctr_nmi_bit(unsigned int); 11extern int reserve_perfctr_nmi(unsigned int); 12extern void release_perfctr_nmi(unsigned int); 13extern int reserve_evntsel_nmi(unsigned int); 14extern void release_evntsel_nmi(unsigned int); 15 16struct ctl_table; 17extern int proc_nmi_enabled(struct ctl_table *, int , 18 void __user *, size_t *, loff_t *); 19extern int unknown_nmi_panic; 20 21void arch_trigger_all_cpu_backtrace(void); 22#define arch_trigger_all_cpu_backtrace arch_trigger_all_cpu_backtrace 23#endif 24 25#define NMI_FLAG_FIRST 1 26 27enum { 28 NMI_LOCAL=0, 29 NMI_UNKNOWN, 30 NMI_SERR, 31 NMI_IO_CHECK, 32 NMI_MAX 33}; 34 35#define NMI_DONE 0 36#define NMI_HANDLED 1 37 38typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *); 39 40struct nmiaction { 41 struct list_head list; 42 nmi_handler_t handler; 43 unsigned long flags; 44 const char *name; 45}; 46 47#define register_nmi_handler(t, fn, fg, n, init...) \ 48({ \ 49 static struct nmiaction init fn##_na = { \ 50 .handler = (fn), \ 51 .name = (n), \ 52 .flags = (fg), \ 53 }; \ 54 __register_nmi_handler((t), &fn##_na); \ 55}) 56 57int __register_nmi_handler(unsigned int, struct nmiaction *); 58 59void unregister_nmi_handler(unsigned int, const char *); 60 61void stop_nmi(void); 62void restart_nmi(void); 63void local_touch_nmi(void); 64 65#endif /* _ASM_X86_NMI_H */