85 lines · c
1#ifndef __PERF_FTRACE_H__2#define __PERF_FTRACE_H__3 4#include <linux/list.h>5 6#include "target.h"7 8struct evlist;9struct hashamp;10 11struct perf_ftrace {12 struct evlist *evlist;13 struct target target;14 const char *tracer;15 struct list_head filters;16 struct list_head notrace;17 struct list_head graph_funcs;18 struct list_head nograph_funcs;19 struct hashmap *profile_hash;20 unsigned long percpu_buffer_size;21 bool inherit;22 bool use_nsec;23 int graph_depth;24 int func_stack_trace;25 int func_irq_info;26 int graph_nosleep_time;27 int graph_noirqs;28 int graph_verbose;29 int graph_thresh;30 int graph_tail;31};32 33struct filter_entry {34 struct list_head list;35 char name[];36};37 38#define NUM_BUCKET 22 /* 20 + 2 (for outliers in both direction) */39 40#ifdef HAVE_BPF_SKEL41 42int perf_ftrace__latency_prepare_bpf(struct perf_ftrace *ftrace);43int perf_ftrace__latency_start_bpf(struct perf_ftrace *ftrace);44int perf_ftrace__latency_stop_bpf(struct perf_ftrace *ftrace);45int perf_ftrace__latency_read_bpf(struct perf_ftrace *ftrace,46 int buckets[]);47int perf_ftrace__latency_cleanup_bpf(struct perf_ftrace *ftrace);48 49#else /* !HAVE_BPF_SKEL */50 51static inline int52perf_ftrace__latency_prepare_bpf(struct perf_ftrace *ftrace __maybe_unused)53{54 return -1;55}56 57static inline int58perf_ftrace__latency_start_bpf(struct perf_ftrace *ftrace __maybe_unused)59{60 return -1;61}62 63static inline int64perf_ftrace__latency_stop_bpf(struct perf_ftrace *ftrace __maybe_unused)65{66 return -1;67}68 69static inline int70perf_ftrace__latency_read_bpf(struct perf_ftrace *ftrace __maybe_unused,71 int buckets[] __maybe_unused)72{73 return -1;74}75 76static inline int77perf_ftrace__latency_cleanup_bpf(struct perf_ftrace *ftrace __maybe_unused)78{79 return -1;80}81 82#endif /* HAVE_BPF_SKEL */83 84#endif /* __PERF_FTRACE_H__ */85