bpf-event.h 1.4 KB

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