Paul Mundt | 60a51fbe | 2008-12-16 09:33:53 +0900 | [diff] [blame] | 1 | #ifndef __OP_IMPL_H |
| 2 | #define __OP_IMPL_H |
| 3 | |
| 4 | /* Per-counter configuration as set via oprofilefs. */ |
| 5 | struct op_counter_config { |
| 6 | unsigned long enabled; |
| 7 | unsigned long event; |
| 8 | |
Paul Mundt | e9c4148 | 2009-11-05 17:13:15 +0900 | [diff] [blame] | 9 | unsigned long count; |
Paul Mundt | 60a51fbe | 2008-12-16 09:33:53 +0900 | [diff] [blame] | 10 | |
| 11 | /* Dummy values for userspace tool compliance */ |
| 12 | unsigned long kernel; |
| 13 | unsigned long user; |
| 14 | unsigned long unit_mask; |
| 15 | }; |
| 16 | |
| 17 | /* Per-architecture configury and hooks. */ |
| 18 | struct op_sh_model { |
| 19 | void (*reg_setup)(struct op_counter_config *); |
| 20 | int (*create_files)(struct super_block *sb, struct dentry *dir); |
| 21 | void (*cpu_setup)(void *dummy); |
| 22 | int (*init)(void); |
| 23 | void (*exit)(void); |
| 24 | void (*cpu_start)(void *args); |
| 25 | void (*cpu_stop)(void *args); |
| 26 | char *cpu_type; |
| 27 | unsigned char num_counters; |
| 28 | }; |
| 29 | |
| 30 | /* arch/sh/oprofile/common.c */ |
| 31 | extern void sh_backtrace(struct pt_regs * const regs, unsigned int depth); |
| 32 | |
| 33 | #endif /* __OP_IMPL_H */ |