*/
#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
#include <linux/perf_event.h>
#include <perfmon/perf_event.h>
#include <perfmon/pfmlib_perf_event.h>
+#include <stdio.h>
+#include <string.h>
int main(int argc, char **argv)
{
struct perf_event_attr attr;
if (argc != 2) {
- fprintf(stderr, "Usage: %s <pmu counter to find>\n"
- "ex: %s UNHALTED_REFERENCE_CYCLES\n"
- "Returns the event raw number if found and actionable with"
- "return code 0.\n"
- "If not found returns 1,"
- "If not actionable return 2,"
- "on error returns 255\n",
- argv[0], argv[0]);
+ fprintf(stderr,
+ "Usage: %s <pmu counter to find>\n"
+ "ex: %s UNHALTED_REFERENCE_CYCLES\n"
+ "Returns the event raw number if found and actionable with"
+ "return code 0.\n"
+ "If not found returns 1,"
+ "If not actionable return 2,"
+ "on error returns 255\n",
+ argv[0],
+ argv[0]);
ret = -1;
goto end;
}
ret = pfm_initialize();
if (ret != PFM_SUCCESS) {
- fprintf(stderr, "Failed to initialise libpfm: %s",
- pfm_strerror(ret));
+ fprintf(stderr, "Failed to initialise libpfm: %s", pfm_strerror(ret));
ret = 255;
goto end;
}
- ret = pfm_get_os_event_encoding(argv[1],
- PFM_PLM0 | PFM_PLM1 | PFM_PLM2 | PFM_PLM3,
- PFM_OS_PERF_EVENT, &pencoder);
+ ret = pfm_get_os_event_encoding(
+ argv[1], PFM_PLM0 | PFM_PLM1 | PFM_PLM2 | PFM_PLM3, PFM_OS_PERF_EVENT, &pencoder);
if (ret != PFM_SUCCESS) {
- fprintf(stderr, "libpfm: error pfm_get_os_event_encoding: %s\n",
- pfm_strerror(ret));
+ fprintf(stderr, "libpfm: error pfm_get_os_event_encoding: %s\n", pfm_strerror(ret));
ret = 1;
goto end;
}
/* perf_event_open is provided by perfmon/perf_event.h. */
fd = perf_event_open(pencoder.attr, 0, -1, -1, 0);
if (fd == -1) {
- fprintf(stderr, "perf: error perf_event_open: %d: %s\n", errno,
- strerror(errno));
+ fprintf(stderr, "perf: error perf_event_open: %d: %s\n", errno, strerror(errno));
ret = 2;
goto end;
}