|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | #ifndef __PERF_TOOL_H | 
|  | #define __PERF_TOOL_H | 
|  |  | 
|  | #include <stdbool.h> | 
|  |  | 
|  | #include <linux/types.h> | 
|  |  | 
|  | struct perf_session; | 
|  | union perf_event; | 
|  | struct perf_evlist; | 
|  | struct perf_evsel; | 
|  | struct perf_sample; | 
|  | struct perf_tool; | 
|  | struct machine; | 
|  | struct ordered_events; | 
|  |  | 
|  | 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)(struct perf_tool *tool, | 
|  | union perf_event *event, | 
|  | struct perf_evlist **pevlist); | 
|  |  | 
|  | typedef int (*event_op2)(struct perf_session *session, union perf_event *event); | 
|  | typedef s64 (*event_op3)(struct perf_session *session, union perf_event *event); | 
|  |  | 
|  | typedef int (*event_oe)(struct perf_tool *tool, union perf_event *event, | 
|  | struct ordered_events *oe); | 
|  |  | 
|  | enum show_feature_header { | 
|  | SHOW_FEAT_NO_HEADER = 0, | 
|  | SHOW_FEAT_HEADER, | 
|  | SHOW_FEAT_HEADER_FULL_INFO, | 
|  | }; | 
|  |  | 
|  | struct perf_tool { | 
|  | event_sample	sample, | 
|  | read; | 
|  | event_op	mmap, | 
|  | mmap2, | 
|  | comm, | 
|  | namespaces, | 
|  | fork, | 
|  | exit, | 
|  | lost, | 
|  | lost_samples, | 
|  | aux, | 
|  | itrace_start, | 
|  | context_switch, | 
|  | throttle, | 
|  | unthrottle, | 
|  | ksymbol, | 
|  | bpf_event; | 
|  |  | 
|  | event_attr_op	attr; | 
|  | event_attr_op	event_update; | 
|  | event_op2	tracing_data; | 
|  | event_oe	finished_round; | 
|  | event_op2	build_id, | 
|  | id_index, | 
|  | auxtrace_info, | 
|  | auxtrace_error, | 
|  | time_conv, | 
|  | thread_map, | 
|  | cpu_map, | 
|  | stat_config, | 
|  | stat, | 
|  | stat_round, | 
|  | feature; | 
|  | event_op3	auxtrace; | 
|  | bool		ordered_events; | 
|  | bool		ordering_requires_timestamps; | 
|  | bool		namespace_events; | 
|  | bool		no_warn; | 
|  | enum show_feature_header show_feat_hdr; | 
|  | }; | 
|  |  | 
|  | #endif /* __PERF_TOOL_H */ |