1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __PERF_TOOL_H |
3 | #define __PERF_TOOL_H |
4 | |
5 | #include <stdbool.h> |
6 | |
7 | #include <linux/types.h> |
8 | |
9 | struct perf_session; |
10 | union perf_event; |
11 | struct evlist; |
12 | struct evsel; |
13 | struct perf_sample; |
14 | struct perf_tool; |
15 | struct machine; |
16 | struct ordered_events; |
17 | |
18 | typedef int (*event_sample)(struct perf_tool *tool, union perf_event *event, |
19 | struct perf_sample *sample, |
20 | struct evsel *evsel, struct machine *machine); |
21 | |
22 | typedef int (*event_op)(struct perf_tool *tool, union perf_event *event, |
23 | struct perf_sample *sample, struct machine *machine); |
24 | |
25 | typedef int (*event_attr_op)(struct perf_tool *tool, |
26 | union perf_event *event, |
27 | struct evlist **pevlist); |
28 | |
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, |
32 | const char *str); |
33 | |
34 | typedef int (*event_oe)(struct perf_tool *tool, union perf_event *event, |
35 | struct ordered_events *oe); |
36 | |
37 | enum { |
38 | = 0, |
39 | , |
40 | , |
41 | }; |
42 | |
43 | struct perf_tool { |
44 | event_sample sample, |
45 | read; |
46 | event_op mmap, |
47 | mmap2, |
48 | comm, |
49 | namespaces, |
50 | cgroup, |
51 | fork, |
52 | exit, |
53 | lost, |
54 | lost_samples, |
55 | aux, |
56 | itrace_start, |
57 | aux_output_hw_id, |
58 | context_switch, |
59 | throttle, |
60 | unthrottle, |
61 | ksymbol, |
62 | bpf, |
63 | text_poke; |
64 | |
65 | event_attr_op attr; |
66 | event_attr_op event_update; |
67 | event_op2 tracing_data; |
68 | event_oe finished_round; |
69 | event_op2 build_id, |
70 | id_index, |
71 | auxtrace_info, |
72 | auxtrace_error, |
73 | time_conv, |
74 | thread_map, |
75 | cpu_map, |
76 | stat_config, |
77 | stat, |
78 | stat_round, |
79 | feature, |
80 | finished_init; |
81 | event_op4 compressed; |
82 | event_op3 auxtrace; |
83 | bool ordered_events; |
84 | bool ordering_requires_timestamps; |
85 | bool namespace_events; |
86 | bool cgroup_events; |
87 | bool no_warn; |
88 | enum show_feature_header show_feat_hdr; |
89 | }; |
90 | |
91 | #endif /* __PERF_TOOL_H */ |
92 | |