Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | /* Per-counter configuration as set via oprofilefs. */ | |
14 | struct op_counter_config { | |
15 | unsigned long enabled; | |
16 | unsigned long event; | |
17 | unsigned long count; | |
18 | /* Dummies because I am too lazy to hack the userspace tools. */ | |
19 | unsigned long kernel; | |
20 | unsigned long user; | |
21 | unsigned long unit_mask; | |
22 | }; | |
23 | ||
24 | /* System-wide configuration as set via oprofilefs. */ | |
25 | struct op_system_config { | |
26 | unsigned long enable_pal; | |
27 | unsigned long enable_kernel; | |
28 | unsigned long enable_user; | |
29 | }; | |
30 | ||
31 | /* Cached values for the various performance monitoring registers. */ | |
32 | struct op_register_config { | |
33 | unsigned long enable; | |
34 | unsigned long mux_select; | |
35 | unsigned long proc_mode; | |
36 | unsigned long freq; | |
37 | unsigned long reset_values; | |
38 | unsigned long need_reset; | |
39 | }; | |
40 | ||
c3a2ddee | 41 | /* Per-architecture configuration and hooks. */ |
1da177e4 LT |
42 | struct op_axp_model { |
43 | void (*reg_setup) (struct op_register_config *, | |
44 | struct op_counter_config *, | |
45 | struct op_system_config *); | |
46 | void (*cpu_setup) (void *); | |
47 | void (*reset_ctr) (struct op_register_config *, unsigned long); | |
48 | void (*handle_interrupt) (unsigned long, struct pt_regs *, | |
49 | struct op_counter_config *); | |
50 | char *cpu_type; | |
51 | unsigned char num_counters; | |
52 | unsigned char can_set_proc_mode; | |
53 | }; | |
54 | ||
55 | #endif |