summaryrefslogtreecommitdiffstats
path: root/sys/mips/include
diff options
context:
space:
mode:
Diffstat (limited to 'sys/mips/include')
-rw-r--r--sys/mips/include/cpufunc.h7
-rw-r--r--sys/mips/include/pmc_mdep.h20
2 files changed, 24 insertions, 3 deletions
diff --git a/sys/mips/include/cpufunc.h b/sys/mips/include/cpufunc.h
index cd4d3e5..d4ca0f1 100644
--- a/sys/mips/include/cpufunc.h
+++ b/sys/mips/include/cpufunc.h
@@ -244,6 +244,13 @@ MIPS_RDRW32_COP0(watchhi, MIPS_COP_0_WATCH_HI);
MIPS_RDRW32_COP0_SEL(watchhi, MIPS_COP_0_WATCH_HI, 1);
MIPS_RDRW32_COP0_SEL(watchhi, MIPS_COP_0_WATCH_HI, 2);
MIPS_RDRW32_COP0_SEL(watchhi, MIPS_COP_0_WATCH_HI, 3);
+
+MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 0);
+MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 1);
+MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 2);
+MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 3);
+
+
#undef MIPS_RDRW32_COP0
static __inline register_t
diff --git a/sys/mips/include/pmc_mdep.h b/sys/mips/include/pmc_mdep.h
index 46639544..658641a 100644
--- a/sys/mips/include/pmc_mdep.h
+++ b/sys/mips/include/pmc_mdep.h
@@ -8,17 +8,31 @@
#ifndef _MACHINE_PMC_MDEP_H_
#define _MACHINE_PMC_MDEP_H_
+#define PMC_MDEP_CLASS_INDEX_MIPS24K 0
+#include <dev/hwpmc/hwpmc_mips24k.h>
+
union pmc_md_op_pmcallocate {
uint64_t __pad[4];
};
/* Logging */
-#define PMCLOG_READADDR PMCLOG_READ64
-#define PMCLOG_EMITADDR PMCLOG_EMIT64
+#define PMCLOG_READADDR PMCLOG_READ32
+#define PMCLOG_EMITADDR PMCLOG_EMIT32
#if _KERNEL
union pmc_md_pmc {
+ struct pmc_md_mips24k_pmc pm_mips24k;
};
-#endif
+#define PMC_TRAPFRAME_TO_PC(TF) ((TF)->pc)
+#define PMC_TRAPFRAME_TO_FP(TF) ((TF)->tf_usr_lr)
+#define PMC_TRAPFRAME_TO_SP(TF) ((TF)->tf_usr_sp)
+
+/*
+ * Prototypes
+ */
+struct pmc_mdep *pmc_mips24k_initialize(void);
+void pmc_mips24k_finalize(struct pmc_mdep *_md);
+#endif /* _KERNEL */
+
#endif /* !_MACHINE_PMC_MDEP_H_ */
OpenPOWER on IntegriCloud