Linux-2.6.12-rc2
[deliverable/linux.git] / arch / ppc / oprofile / op_impl.h
1 /*
2 * Copyright (C) 2004 Anton Blanchard <anton@au.ibm.com>, IBM
3 *
4 * Based on alpha version.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12 #ifndef OP_IMPL_H
13 #define OP_IMPL_H 1
14
15 #define OP_MAX_COUNTER 8
16
17 /* Per-counter configuration as set via oprofilefs. */
18 struct op_counter_config {
19 unsigned long enabled;
20 unsigned long event;
21 unsigned long count;
22 unsigned long kernel;
23 unsigned long user;
24 unsigned long unit_mask;
25 };
26
27 /* System-wide configuration as set via oprofilefs. */
28 struct op_system_config {
29 unsigned long enable_kernel;
30 unsigned long enable_user;
31 };
32
33 /* Per-arch configuration */
34 struct op_ppc32_model {
35 void (*reg_setup) (struct op_counter_config *,
36 struct op_system_config *,
37 int num_counters);
38 void (*start) (struct op_counter_config *);
39 void (*stop) (void);
40 void (*handle_interrupt) (struct pt_regs *,
41 struct op_counter_config *);
42 int num_counters;
43 };
44
45 #endif /* OP_IMPL_H */
This page took 0.036967 seconds and 5 git commands to generate.