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 20extern int op_nmi_init(struct oprofile_operations *ops); 21extern void op_nmi_exit(void); 22#else 23static int op_nmi_init(struct oprofile_operations *ops) { return -ENODEV; } 24static void op_nmi_exit(void) { } 25#endif 26 27extern void x86_backtrace(struct pt_regs * const regs, unsigned int depth); 28 29int __init oprofile_arch_init(struct oprofile_operations *ops) 30{ 31 ops->backtrace = x86_backtrace; 32 return op_nmi_init(ops); 33} 34 35void oprofile_arch_exit(void) 36{ 37 op_nmi_exit(); 38} 39