1 #ifndef __PERF_TOOL_H 2 #define __PERF_TOOL_H 3 4 #include <stdbool.h> 5 6 struct perf_session; 7 union perf_event; 8 struct perf_evlist; 9 struct perf_evsel; 10 struct perf_sample; 11 struct perf_tool; 12 struct machine; 13 14 typedef int (*event_sample)(struct perf_tool *tool, union perf_event *event, 15 struct perf_sample *sample, 16 struct perf_evsel *evsel, struct machine *machine); 17 18 typedef int (*event_op)(struct perf_tool *tool, union perf_event *event, 19 struct perf_sample *sample, struct machine *machine); 20 21 typedef int (*event_attr_op)(struct perf_tool *tool, 22 union perf_event *event, 23 struct perf_evlist **pevlist); 24 25 typedef int (*event_op2)(struct perf_tool *tool, union perf_event *event, 26 struct perf_session *session); 27 28 struct perf_tool { 29 event_sample sample, 30 read; 31 event_op mmap, 32 mmap2, 33 comm, 34 fork, 35 exit, 36 lost, 37 throttle, 38 unthrottle; 39 event_attr_op attr; 40 event_op2 tracing_data; 41 event_op2 finished_round, 42 build_id; 43 bool ordered_samples; 44 bool ordering_requires_timestamps; 45 }; 46 47 #endif /* __PERF_TOOL_H */ 48