|  | #ifndef __OP_IMPL_H | 
|  | #define __OP_IMPL_H | 
|  |  | 
|  | /* Per-counter configuration as set via oprofilefs.  */ | 
|  | struct op_counter_config { | 
|  | unsigned long enabled; | 
|  | unsigned long event; | 
|  |  | 
|  | unsigned long count; | 
|  |  | 
|  | /* Dummy values for userspace tool compliance */ | 
|  | unsigned long kernel; | 
|  | unsigned long user; | 
|  | unsigned long unit_mask; | 
|  | }; | 
|  |  | 
|  | /* Per-architecture configury and hooks.  */ | 
|  | struct op_sh_model { | 
|  | void (*reg_setup)(struct op_counter_config *); | 
|  | int (*create_files)(struct super_block *sb, struct dentry *dir); | 
|  | void (*cpu_setup)(void *dummy); | 
|  | int (*init)(void); | 
|  | void (*exit)(void); | 
|  | void (*cpu_start)(void *args); | 
|  | void (*cpu_stop)(void *args); | 
|  | char *cpu_type; | 
|  | unsigned char num_counters; | 
|  | }; | 
|  |  | 
|  | /* arch/sh/oprofile/common.c */ | 
|  | extern void sh_backtrace(struct pt_regs * const regs, unsigned int depth); | 
|  |  | 
|  | #endif /* __OP_IMPL_H */ |