op_impl.h 953 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. #ifndef OP_IMPL_H
  10. #define OP_IMPL_H 1
  11. struct pt_regs;
  12. extern int null_perf_irq(struct pt_regs *regs);
  13. extern int (*perf_irq)(struct pt_regs *regs);
  14. /* Per-counter configuration as set via oprofilefs. */
  15. struct op_counter_config {
  16. unsigned long enabled;
  17. unsigned long event;
  18. unsigned long count;
  19. /* Dummies because I am too lazy to hack the userspace tools. */
  20. unsigned long kernel;
  21. unsigned long user;
  22. unsigned long exl;
  23. unsigned long unit_mask;
  24. };
  25. /* Per-architecture configury and hooks. */
  26. struct op_mips_model {
  27. void (*reg_setup) (struct op_counter_config *);
  28. void (*cpu_setup) (void * dummy);
  29. int (*init)(void);
  30. void (*exit)(void);
  31. void (*cpu_start)(void *args);
  32. void (*cpu_stop)(void *args);
  33. char *cpu_type;
  34. unsigned char num_counters;
  35. };
  36. #endif