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/kernel.h> 11 #include <linux/oprofile.h> 12 #include <linux/init.h> 13 #include <linux/errno.h> 14 15 extern int perfmon_init(struct oprofile_operations *ops); 16 extern void perfmon_exit(void); 17 extern void ia64_backtrace(struct pt_regs * const regs, unsigned int depth); 18 oprofile_arch_init(struct oprofile_operations * ops)19int __init oprofile_arch_init(struct oprofile_operations *ops) 20 { 21 int ret = -ENODEV; 22 23 #ifdef CONFIG_PERFMON 24 /* perfmon_init() can fail, but we have no way to report it */ 25 ret = perfmon_init(ops); 26 #endif 27 ops->backtrace = ia64_backtrace; 28 29 return ret; 30 } 31 32 oprofile_arch_exit(void)33void oprofile_arch_exit(void) 34 { 35 #ifdef CONFIG_PERFMON 36 perfmon_exit(); 37 #endif 38 } 39