linux/arch/alpha/oprofile/op_impl.h
<<
>>
Prefs
   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.  */
  14struct 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.  */
  25struct 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.  */
  32struct 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
  41/* Per-architecture configuration and hooks.  */
  42struct 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
  56