perf auxtrace: Add ->evsel_is_auxtrace() callback
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 1 Apr 2020 10:15:58 +0000 (13:15 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 16 Apr 2020 15:19:15 +0000 (12:19 -0300)
Add ->evsel_is_auxtrace() callback to identify if a selected event
is an AUX area event.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Kim Phillips <kim.phillips@arm.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Thomas Richter <tmricht@linux.ibm.com>
Link: http://lore.kernel.org/lkml/20200401101613.6201-2-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/auxtrace.c
tools/perf/util/auxtrace.h

index 3571ce7..2c4ad68 100644 (file)
@@ -2577,3 +2577,12 @@ void auxtrace__free(struct perf_session *session)
 
        return session->auxtrace->free(session);
 }
+
+bool auxtrace__evsel_is_auxtrace(struct perf_session *session,
+                                struct evsel *evsel)
+{
+       if (!session->auxtrace || !session->auxtrace->evsel_is_auxtrace)
+               return false;
+
+       return session->auxtrace->evsel_is_auxtrace(session, evsel);
+}
index e58ef16..db65aae 100644 (file)
@@ -21,6 +21,7 @@
 union perf_event;
 struct perf_session;
 struct evlist;
+struct evsel;
 struct perf_tool;
 struct mmap;
 struct perf_sample;
@@ -166,6 +167,8 @@ struct auxtrace {
                            struct perf_tool *tool);
        void (*free_events)(struct perf_session *session);
        void (*free)(struct perf_session *session);
+       bool (*evsel_is_auxtrace)(struct perf_session *session,
+                                 struct evsel *evsel);
 };
 
 /**
@@ -584,6 +587,8 @@ void auxtrace__dump_auxtrace_sample(struct perf_session *session,
 int auxtrace__flush_events(struct perf_session *session, struct perf_tool *tool);
 void auxtrace__free_events(struct perf_session *session);
 void auxtrace__free(struct perf_session *session);
+bool auxtrace__evsel_is_auxtrace(struct perf_session *session,
+                                struct evsel *evsel);
 
 #define ITRACE_HELP \
 "                              i:                      synthesize instructions events\n"               \
@@ -749,6 +754,13 @@ void auxtrace_index__free(struct list_head *head __maybe_unused)
 {
 }
 
+static inline
+bool auxtrace__evsel_is_auxtrace(struct perf_session *session __maybe_unused,
+                                struct evsel *evsel __maybe_unused)
+{
+       return false;
+}
+
 static inline
 int auxtrace_parse_filters(struct evlist *evlist __maybe_unused)
 {