xref: /openbmc/linux/tools/perf/util/bpf-filter.h (revision 990a71e9)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef PERF_UTIL_BPF_FILTER_H
3 #define PERF_UTIL_BPF_FILTER_H
4 
5 #include <linux/list.h>
6 
7 enum perf_bpf_filter_op {
8 	PBF_OP_EQ,
9 	PBF_OP_NEQ,
10 	PBF_OP_GT,
11 	PBF_OP_GE,
12 	PBF_OP_LT,
13 	PBF_OP_LE,
14 	PBF_OP_AND,
15 };
16 
17 struct perf_bpf_filter_expr {
18 	struct list_head list;
19 	enum perf_bpf_filter_op op;
20 	unsigned long sample_flags;
21 	unsigned long val;
22 };
23 
24 #ifdef HAVE_BPF_SKEL
25 struct perf_bpf_filter_expr *perf_bpf_filter_expr__new(unsigned long sample_flags,
26 						       enum perf_bpf_filter_op op,
27 						       unsigned long val);
28 int perf_bpf_filter__parse(struct list_head *expr_head, const char *str);
29 #else /* !HAVE_BPF_SKEL */
30 static inline int perf_bpf_filter__parse(struct list_head *expr_head __maybe_unused,
31 					 const char *str __maybe_unused)
32 {
33 	return -ENOSYS;
34 }
35 #endif /* HAVE_BPF_SKEL*/
36 #endif /* PERF_UTIL_BPF_FILTER_H */
37