Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / alpha / oprofile / op_impl.h
diff --git a/kernel/arch/alpha/oprofile/op_impl.h b/kernel/arch/alpha/oprofile/op_impl.h
new file mode 100644 (file)
index 0000000..b2b87ae
--- /dev/null
@@ -0,0 +1,55 @@
+/**
+ * @file arch/alpha/oprofile/op_impl.h
+ *
+ * @remark Copyright 2002 OProfile authors
+ * @remark Read the file COPYING
+ *
+ * @author Richard Henderson <rth@twiddle.net>
+ */
+
+#ifndef OP_IMPL_H
+#define OP_IMPL_H 1
+
+/* Per-counter configuration as set via oprofilefs.  */
+struct op_counter_config {
+       unsigned long enabled;
+       unsigned long event;
+       unsigned long count;
+       /* Dummies because I am too lazy to hack the userspace tools.  */
+       unsigned long kernel;
+       unsigned long user;
+       unsigned long unit_mask;
+};
+
+/* System-wide configuration as set via oprofilefs.  */
+struct op_system_config {
+       unsigned long enable_pal;
+       unsigned long enable_kernel;
+       unsigned long enable_user;
+};
+
+/* Cached values for the various performance monitoring registers.  */
+struct op_register_config {
+       unsigned long enable;
+       unsigned long mux_select;
+       unsigned long proc_mode;
+       unsigned long freq;
+       unsigned long reset_values;
+       unsigned long need_reset;
+};
+
+/* Per-architecture configuration and hooks.  */
+struct op_axp_model {
+       void (*reg_setup) (struct op_register_config *,
+                          struct op_counter_config *,
+                          struct op_system_config *);
+       void (*cpu_setup) (void *);
+       void (*reset_ctr) (struct op_register_config *, unsigned long);
+       void (*handle_interrupt) (unsigned long, struct pt_regs *,
+                                 struct op_counter_config *);
+       char *cpu_type;
+       unsigned char num_counters;
+       unsigned char can_set_proc_mode;
+};
+
+#endif