]> asedeno.scripts.mit.edu Git - linux.git/blob - tools/perf/util/bpf-event.h
8cb1189149ece2089592309932e34317a60884bb
[linux.git] / tools / perf / util / bpf-event.h
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 <pthread.h>
8 #include <api/fd/array.h>
9 #include "event.h"
10
11 struct machine;
12 union perf_event;
13 struct perf_env;
14 struct perf_sample;
15 struct record_opts;
16 struct evlist;
17 struct target;
18
19 struct bpf_prog_info_node {
20         struct bpf_prog_info_linear     *info_linear;
21         struct rb_node                  rb_node;
22 };
23
24 struct btf_node {
25         struct rb_node  rb_node;
26         u32             id;
27         u32             data_size;
28         char            data[];
29 };
30
31 #ifdef HAVE_LIBBPF_SUPPORT
32 int machine__process_bpf_event(struct machine *machine, union perf_event *event,
33                                struct perf_sample *sample);
34
35 int perf_event__synthesize_bpf_events(struct perf_session *session,
36                                       perf_event__handler_t process,
37                                       struct machine *machine,
38                                       struct record_opts *opts);
39 int bpf_event__add_sb_event(struct perf_evlist **evlist,
40                                  struct perf_env *env);
41
42 #else
43 static inline int machine__process_bpf_event(struct machine *machine __maybe_unused,
44                                              union perf_event *event __maybe_unused,
45                                              struct perf_sample *sample __maybe_unused)
46 {
47         return 0;
48 }
49
50 static inline int perf_event__synthesize_bpf_events(struct perf_session *session __maybe_unused,
51                                                     perf_event__handler_t process __maybe_unused,
52                                                     struct machine *machine __maybe_unused,
53                                                     struct record_opts *opts __maybe_unused)
54 {
55         return 0;
56 }
57
58 static inline int bpf_event__add_sb_event(struct perf_evlist **evlist __maybe_unused,
59                                           struct perf_env *env __maybe_unused)
60 {
61         return 0;
62 }
63
64 #endif // HAVE_LIBBPF_SUPPORT
65 #endif