linux/tools/perf/util/bpf-event.h
<<
>>
Prefs
   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#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 // HAVE_LIBBPF_SUPPORT
  74#endif
  75