1 /** 2 * @file arch/alpha/oprofile/op_impl.h 3 * 4 * @remark Copyright 2002 OProfile authors 5 * @remark Read the file COPYING 6 * 7 * @author Richard Henderson <rth@twiddle.net> 8 */ 9 10 #ifndef OP_IMPL_H 11 #define OP_IMPL_H 1 12 13 extern int (*perf_irq)(void); 14 15 /* Per-counter configuration as set via oprofilefs. */ 16 struct op_counter_config { 17 unsigned long enabled; 18 unsigned long event; 19 unsigned long count; 20 /* Dummies because I am too lazy to hack the userspace tools. */ 21 unsigned long kernel; 22 unsigned long user; 23 unsigned long exl; 24 unsigned long unit_mask; 25 }; 26 27 /* Per-architecture configure and hooks. */ 28 struct op_mips_model { 29 void (*reg_setup) (struct op_counter_config *); 30 void (*cpu_setup) (void *dummy); 31 int (*init)(void); 32 void (*exit)(void); 33 void (*cpu_start)(void *args); 34 void (*cpu_stop)(void *args); 35 char *cpu_type; 36 unsigned char num_counters; 37 }; 38 39 void op_mips_backtrace(struct pt_regs * const regs, unsigned int depth); 40 41 #endif 42