1
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#include <stdio.h>
11
12struct machine;
13union perf_event;
14struct perf_env;
15struct perf_sample;
16struct record_opts;
17struct evlist;
18struct target;
19
20struct bpf_prog_info_node {
21 struct bpf_prog_info_linear *info_linear;
22 struct rb_node rb_node;
23};
24
25struct 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
33int machine__process_bpf_event(struct machine *machine, union perf_event *event,
34 struct perf_sample *sample);
35
36int perf_event__synthesize_bpf_events(struct perf_session *session,
37 perf_event__handler_t process,
38 struct machine *machine,
39 struct record_opts *opts);
40int bpf_event__add_sb_event(struct perf_evlist **evlist,
41 struct perf_env *env);
42void bpf_event__print_bpf_prog_info(struct bpf_prog_info *info,
43 struct perf_env *env,
44 FILE *fp);
45#else
46static inline int machine__process_bpf_event(struct machine *machine __maybe_unused,
47 union perf_event *event __maybe_unused,
48 struct perf_sample *sample __maybe_unused)
49{
50 return 0;
51}
52
53static inline int perf_event__synthesize_bpf_events(struct perf_session *session __maybe_unused,
54 perf_event__handler_t process __maybe_unused,
55 struct machine *machine __maybe_unused,
56 struct record_opts *opts __maybe_unused)
57{
58 return 0;
59}
60
61static inline int bpf_event__add_sb_event(struct perf_evlist **evlist __maybe_unused,
62 struct perf_env *env __maybe_unused)
63{
64 return 0;
65}
66
67static inline void bpf_event__print_bpf_prog_info(struct bpf_prog_info *info __maybe_unused,
68 struct perf_env *env __maybe_unused,
69 FILE *fp __maybe_unused)
70{
71
72}
73#endif
74#endif
75