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 15extern int perfmon_init(struct oprofile_operations *ops); 16extern void perfmon_exit(void); 17extern void ia64_backtrace(struct pt_regs * const regs, unsigned int depth); 18 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 33void oprofile_arch_exit(void) 34{ 35#ifdef CONFIG_PERFMON 36 perfmon_exit(); 37#endif 38} 39