1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __PERF_BPF_EVENT_H |
3 | #define __PERF_BPF_EVENT_H |
4 | |
5 | #include <linux/compiler.h> |
6 | #include <linux/rbtree.h> |
7 | #include <api/fd/array.h> |
8 | #include <stdio.h> |
9 | |
10 | struct bpf_prog_info; |
11 | struct machine; |
12 | union perf_event; |
13 | struct perf_env; |
14 | struct perf_sample; |
15 | struct perf_session; |
16 | struct record_opts; |
17 | struct evlist; |
18 | struct target; |
19 | |
20 | struct bpf_prog_info_node { |
21 | struct perf_bpil *info_linear; |
22 | struct rb_node rb_node; |
23 | }; |
24 | |
25 | struct btf_node { |
26 | struct rb_node rb_node; |
27 | u32 id; |
28 | u32 data_size; |
29 | char data[]; |
30 | }; |
31 | |
32 | #ifdef HAVE_LIBBPF_SUPPORT |
33 | int machine__process_bpf(struct machine *machine, union perf_event *event, |
34 | struct perf_sample *sample); |
35 | int evlist__add_bpf_sb_event(struct evlist *evlist, struct perf_env *env); |
36 | void __bpf_event__print_bpf_prog_info(struct bpf_prog_info *info, |
37 | struct perf_env *env, |
38 | FILE *fp); |
39 | #else |
40 | static inline int machine__process_bpf(struct machine *machine __maybe_unused, |
41 | union perf_event *event __maybe_unused, |
42 | struct perf_sample *sample __maybe_unused) |
43 | { |
44 | return 0; |
45 | } |
46 | |
47 | static inline int evlist__add_bpf_sb_event(struct evlist *evlist __maybe_unused, |
48 | struct perf_env *env __maybe_unused) |
49 | { |
50 | return 0; |
51 | } |
52 | |
53 | static inline void __bpf_event__print_bpf_prog_info(struct bpf_prog_info *info __maybe_unused, |
54 | struct perf_env *env __maybe_unused, |
55 | FILE *fp __maybe_unused) |
56 | { |
57 | |
58 | } |
59 | #endif // HAVE_LIBBPF_SUPPORT |
60 | #endif |
61 | |