#ifndef __PERF_TOOL_H #define __PERF_TOOL_H #include struct perf_session; union perf_event; struct perf_evlist; struct perf_evsel; struct perf_sample; struct perf_tool; struct machine; typedef int (*event_sample)(struct perf_tool *tool, union perf_event *event, struct perf_sample *sample, struct perf_evsel *evsel, struct machine *machine); typedef int (*event_op)(struct perf_tool *tool, union perf_event *event, struct perf_sample *sample, struct machine *machine); typedef int (*event_attr_op)(union perf_event *event, struct perf_evlist **pevlist); typedef int (*event_simple_op)(struct perf_tool *tool, union perf_event *event); typedef int (*event_synth_op)(union perf_event *event, struct perf_session *session); typedef int (*event_op2)(struct perf_tool *tool, union perf_event *event, struct perf_session *session); struct perf_tool { event_sample sample, read; event_op mmap, comm, fork, exit, lost, throttle, unthrottle; event_attr_op attr; event_synth_op tracing_data; event_simple_op event_type; event_op2 finished_round, build_id; bool ordered_samples; bool ordering_requires_timestamps; }; #endif /* __PERF_TOOL_H */