blob: a4e758a39af4d205283387efa96b7df16f0b64e4 [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 Baechle937a8012006-10-07 19:44:33 +010013extern int (*perf_irq)(void);
Ralf Baechle54176732005-02-07 02:54:29 +000014
Linus Torvalds1da177e2005-04-16 15:20:36 -070015/* 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
Andrea Gelmini50046142016-05-21 14:01:57 +020027/* Per-architecture configure and hooks. */
Linus Torvalds1da177e2005-04-16 15:20:36 -070028struct op_mips_model {
29 void (*reg_setup) (struct op_counter_config *);
Robert Richter25ad29132008-09-05 17:12:36 +020030 void (*cpu_setup) (void *dummy);
Linus Torvalds1da177e2005-04-16 15:20:36 -070031 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
Daniel Kalmar5f307492011-05-13 08:38:05 -040039void op_mips_backtrace(struct pt_regs * const regs, unsigned int depth);
40
Linus Torvalds1da177e2005-04-16 15:20:36 -070041#endif