1 /* SPDX-License-Identifier: GPL-2.0 */
7 #include <linux/types.h>
16 struct ordered_events
;
18 typedef int (*event_sample
)(const struct perf_tool
*tool
, union perf_event
*event
,
19 struct perf_sample
*sample
,
20 struct evsel
*evsel
, struct machine
*machine
);
22 typedef int (*event_op
)(const struct perf_tool
*tool
, union perf_event
*event
,
23 struct perf_sample
*sample
, struct machine
*machine
);
25 typedef int (*event_attr_op
)(const struct perf_tool
*tool
,
26 union perf_event
*event
,
27 struct evlist
**pevlist
);
29 typedef int (*event_op2
)(struct perf_session
*session
, union perf_event
*event
);
30 typedef s64 (*event_op3
)(struct perf_session
*session
, union perf_event
*event
);
31 typedef int (*event_op4
)(struct perf_session
*session
, union perf_event
*event
, u64 data
,
34 typedef int (*event_oe
)(const struct perf_tool
*tool
, union perf_event
*event
,
35 struct ordered_events
*oe
);
37 enum show_feature_header
{
38 SHOW_FEAT_NO_HEADER
= 0,
40 SHOW_FEAT_HEADER_FULL_INFO
,
66 event_attr_op event_update
;
67 event_op2 tracing_data
;
68 event_oe finished_round
;
84 bool ordering_requires_timestamps
;
85 bool namespace_events
;
88 bool dont_split_sample_group
;
89 enum show_feature_header show_feat_hdr
;
92 void perf_tool__init(struct perf_tool
*tool
, bool ordered_events
);
94 bool perf_tool__compressed_is_stub(const struct perf_tool
*tool
);
96 int process_event_sample_stub(const struct perf_tool
*tool
,
97 union perf_event
*event
,
98 struct perf_sample
*sample
,
100 struct machine
*machine
);
102 #endif /* __PERF_TOOL_H */