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)(union perf_event *event, 22 struct perf_evlist **pevlist); 23 typedef int (*event_simple_op)(struct perf_tool *tool, union perf_event *event); 24 25 typedef int (*event_synth_op)(union perf_event *event, 26 struct perf_session *session); 27 28 typedef int (*event_op2)(struct perf_tool *tool, union perf_event *event, 29 struct perf_session *session); 30 31 struct perf_tool { 32 event_sample sample, 33 read; 34 event_op mmap, 35 comm, 36 fork, 37 exit, 38 lost, 39 throttle, 40 unthrottle; 41 event_attr_op attr; 42 event_synth_op tracing_data; 43 event_simple_op event_type; 44 event_op2 finished_round, 45 build_id; 46 bool ordered_samples; 47 bool ordering_requires_timestamps; 48 }; 49 50 #endif /* __PERF_TOOL_H */ 51