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 comm, 33 fork, 34 exit, 35 lost, 36 throttle, 37 unthrottle; 38 event_attr_op attr; 39 event_op2 tracing_data; 40 event_op2 finished_round, 41 build_id; 42 bool ordered_samples; 43 bool ordering_requires_timestamps; 44 }; 45 46 #endif /* __PERF_TOOL_H */ 47