|  | #ifndef __PERF_TOOL_H | 
|  | #define __PERF_TOOL_H | 
|  |  | 
|  | #include <stdbool.h> | 
|  |  | 
|  | 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 */ |