|
@@ -200,6 +200,24 @@ void perf_evsel__set_sample_id(struct perf_evsel *evsel,
|
|
|
evsel->attr.read_format |= PERF_FORMAT_ID;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * perf_evsel__is_function_event - Return whether given evsel is a function
|
|
|
+ * trace event
|
|
|
+ *
|
|
|
+ * @evsel - evsel selector to be tested
|
|
|
+ *
|
|
|
+ * Return %true if event is function trace event
|
|
|
+ */
|
|
|
+bool perf_evsel__is_function_event(struct perf_evsel *evsel)
|
|
|
+{
|
|
|
+#define FUNCTION_EVENT "ftrace:function"
|
|
|
+
|
|
|
+ return evsel->name &&
|
|
|
+ !strncmp(FUNCTION_EVENT, evsel->name, sizeof(FUNCTION_EVENT));
|
|
|
+
|
|
|
+#undef FUNCTION_EVENT
|
|
|
+}
|
|
|
+
|
|
|
void perf_evsel__init(struct perf_evsel *evsel,
|
|
|
struct perf_event_attr *attr, int idx)
|
|
|
{
|