blob: 5cfce7d87a4da1b279bce8bf6f7682690dbe120b [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/**
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
Ralf Baechle54176732005-02-07 02:54:29 +000013struct pt_regs;
14
Ralf Baechleba339c02005-12-09 12:29:38 +000015extern int null_perf_irq(struct pt_regs *regs);
16extern int (*perf_irq)(struct pt_regs *regs);
Ralf Baechle54176732005-02-07 02:54:29 +000017
Linus Torvalds1da177e2005-04-16 15:20:36 -070018/* Per-counter configuration as set via oprofilefs. */
19struct op_counter_config {
20 unsigned long enabled;
21 unsigned long event;
22 unsigned long count;
23 /* Dummies because I am too lazy to hack the userspace tools. */
24 unsigned long kernel;
25 unsigned long user;
26 unsigned long exl;
27 unsigned long unit_mask;
28};
29
30/* Per-architecture configury and hooks. */
31struct op_mips_model {
32 void (*reg_setup) (struct op_counter_config *);
33 void (*cpu_setup) (void * dummy);
34 int (*init)(void);
35 void (*exit)(void);
36 void (*cpu_start)(void *args);
37 void (*cpu_stop)(void *args);
38 char *cpu_type;
39 unsigned char num_counters;
40};
41
42#endif