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