summaryrefslogtreecommitdiffstats
path: root/llvm/include/pmu/pmu-global.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/include/pmu/pmu-global.h')
-rw-r--r--llvm/include/pmu/pmu-global.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/llvm/include/pmu/pmu-global.h b/llvm/include/pmu/pmu-global.h
new file mode 100644
index 0000000..ed059a4
--- /dev/null
+++ b/llvm/include/pmu/pmu-global.h
@@ -0,0 +1,52 @@
+/*
+ * (C) 2018 by Computer System Laboratory, IIS, Academia Sinica, Taiwan.
+ * See COPYRIGHT in top-level directory.
+ */
+
+#ifndef __PMU_GLOBAL_H
+#define __PMU_GLOBAL_H
+
+#if defined(__i386__) || defined(__x86_64__)
+#include "pmu/x86/x86-events.h"
+#elif defined(__arm__) || defined(__aarch64__)
+#include "pmu/arm/arm-events.h"
+#elif defined(_ARCH_PPC) || defined(_ARCH_PPC64)
+#include "pmu/ppc/ppc-events.h"
+#endif
+
+#include "pmu/pmu-utils.h"
+#include "pmu/pmu.h"
+
+namespace pmu {
+
+#define PMU_SIGNAL_NUM SIGIO
+#define PMU_SAMPLE_PERIOD 1e6
+#define PMU_SAMPLE_PAGES 4
+
+class EventManager;
+
+/* Pre-defined event identity. */
+struct EventID {
+ int Type; /* Perf major type: hardware/software/etc */
+ int Config; /* Perf type specific configuration information */
+};
+
+/* System-wide configuration. */
+struct GlobalConfig {
+ int PageSize; /* Host page size */
+ int SignalReceiver; /* TID of the signal receiver */
+ uint32_t Timeout; /* Timer period in nanosecond */
+ int PerfVersion; /* Perf version used in this PMU tool */
+ int OSPerfVersion; /* Perf version used in the OS kernel */
+};
+
+extern EventManager *EventMgr;
+extern GlobalConfig SysConfig;
+
+} /* namespace pmu */
+
+#endif /* __PMU_GLOBAL_H */
+
+/*
+ * vim: ts=8 sts=4 sw=4 expandtab
+ */
OpenPOWER on IntegriCloud