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 10struct bpf_prog_info; 11struct machine; 12union perf_event; 13struct perf_env; 14struct perf_sample; 15struct perf_session; 16struct record_opts; 17struct evlist; 18struct target; 19 20struct bpf_prog_info_node { 21 struct perf_bpil *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(struct machine *machine, union perf_event *event, 34 struct perf_sample *sample); 35int evlist__add_bpf_sb_event(struct evlist *evlist, struct perf_env *env); 36void __bpf_event__print_bpf_prog_info(struct bpf_prog_info *info, 37 struct perf_env *env, 38 FILE *fp); 39#else 40static 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 47static 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 53static 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