OSDN Git Service

Merge tag 'perf-tools-for-v5.18-2022-03-26' of git://git.kernel.org/pub/scm/linux...
[uclinux-h8/linux.git] / tools / perf / util / tool.h
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 show_feature_header {
38         SHOW_FEAT_NO_HEADER = 0,
39         SHOW_FEAT_HEADER,
40         SHOW_FEAT_HEADER_FULL_INFO,
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         event_op4       compressed;
81         event_op3       auxtrace;
82         bool            ordered_events;
83         bool            ordering_requires_timestamps;
84         bool            namespace_events;
85         bool            cgroup_events;
86         bool            no_warn;
87         enum show_feature_header show_feat_hdr;
88 };
89
90 #endif /* __PERF_TOOL_H */