1 /** 2 * @file init.c 3 * 4 * @remark Copyright 2002 OProfile authors 5 * @remark Read the file COPYING 6 * 7 * @author John Levon <levon@movementarian.org> 8 */ 9 10 #include <linux/oprofile.h> 11 #include <linux/init.h> 12 #include <linux/errno.h> 13 14 /* 15 * We support CPUs that have performance counters like the Pentium Pro 16 * with the NMI mode driver. 17 */ 18 19 #ifdef CONFIG_X86_LOCAL_APIC 20 extern int op_nmi_init(struct oprofile_operations *ops); 21 extern void op_nmi_exit(void); 22 #else op_nmi_init(struct oprofile_operations * ops)23static int op_nmi_init(struct oprofile_operations *ops) { return -ENODEV; } op_nmi_exit(void)24static void op_nmi_exit(void) { } 25 #endif 26 27 extern void x86_backtrace(struct pt_regs * const regs, unsigned int depth); 28 oprofile_arch_init(struct oprofile_operations * ops)29int __init oprofile_arch_init(struct oprofile_operations *ops) 30 { 31 ops->backtrace = x86_backtrace; 32 return op_nmi_init(ops); 33 } 34 oprofile_arch_exit(void)35void oprofile_arch_exit(void) 36 { 37 op_nmi_exit(); 38 } 39