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 13extern int (*perf_irq)(void); 14 15/* Per-counter configuration as set via oprofilefs. */ 16struct 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 configury and hooks. */ 28struct 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 39void op_mips_backtrace(struct pt_regs * const regs, unsigned int depth); 40 41#endif 42