aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/perf/util/bpf-filter.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/bpf-filter.h')
-rw-r--r--tools/perf/util/bpf-filter.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/tools/perf/util/bpf-filter.h b/tools/perf/util/bpf-filter.h
new file mode 100644
index 000000000000..7afd159411b8
--- /dev/null
+++ b/tools/perf/util/bpf-filter.h
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef PERF_UTIL_BPF_FILTER_H
+#define PERF_UTIL_BPF_FILTER_H
+
+#include <linux/list.h>
+
+#include "bpf_skel/sample-filter.h"
+
+struct perf_bpf_filter_expr {
+ struct list_head list;
+ struct list_head groups;
+ enum perf_bpf_filter_op op;
+ int part;
+ unsigned long sample_flags;
+ unsigned long val;
+};
+
+struct evsel;
+
+#ifdef HAVE_BPF_SKEL
+struct perf_bpf_filter_expr *perf_bpf_filter_expr__new(unsigned long sample_flags, int part,
+ enum perf_bpf_filter_op op,
+ unsigned long val);
+int perf_bpf_filter__parse(struct list_head *expr_head, const char *str);
+int perf_bpf_filter__prepare(struct evsel *evsel);
+int perf_bpf_filter__destroy(struct evsel *evsel);
+u64 perf_bpf_filter__lost_count(struct evsel *evsel);
+
+#else /* !HAVE_BPF_SKEL */
+
+static inline int perf_bpf_filter__parse(struct list_head *expr_head __maybe_unused,
+ const char *str __maybe_unused)
+{
+ return -EOPNOTSUPP;
+}
+static inline int perf_bpf_filter__prepare(struct evsel *evsel __maybe_unused)
+{
+ return -EOPNOTSUPP;
+}
+static inline int perf_bpf_filter__destroy(struct evsel *evsel __maybe_unused)
+{
+ return -EOPNOTSUPP;
+}
+static inline u64 perf_bpf_filter__lost_count(struct evsel *evsel __maybe_unused)
+{
+ return 0;
+}
+#endif /* HAVE_BPF_SKEL*/
+#endif /* PERF_UTIL_BPF_FILTER_H */