blob: 183c9145352282203944e34cf6a0cb57eb0ba37e [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -02002#ifndef __PERF_TOOL_H
3#define __PERF_TOOL_H
4
Arnaldo Carvalho de Meloee29be62011-11-28 17:57:40 -02005#include <stdbool.h>
6
Adrian Huntera16ac022015-04-09 18:53:43 +03007#include <linux/types.h>
8
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -02009struct perf_session;
Arnaldo Carvalho de Meloee29be62011-11-28 17:57:40 -020010union perf_event;
11struct perf_evlist;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020012struct perf_evsel;
Arnaldo Carvalho de Meloee29be62011-11-28 17:57:40 -020013struct perf_sample;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020014struct perf_tool;
15struct machine;
Arnaldo Carvalho de Melod704ebd2015-03-03 12:37:54 -030016struct ordered_events;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020017
18typedef int (*event_sample)(struct perf_tool *tool, union perf_event *event,
19 struct perf_sample *sample,
20 struct perf_evsel *evsel, struct machine *machine);
21
22typedef int (*event_op)(struct perf_tool *tool, union perf_event *event,
23 struct perf_sample *sample, struct machine *machine);
24
Adrian Hunter47c3d102013-07-04 16:20:21 +030025typedef int (*event_attr_op)(struct perf_tool *tool,
26 union perf_event *event,
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020027 struct perf_evlist **pevlist);
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020028
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020029typedef int (*event_op2)(struct perf_tool *tool, union perf_event *event,
30 struct perf_session *session);
31
Arnaldo Carvalho de Melod704ebd2015-03-03 12:37:54 -030032typedef int (*event_oe)(struct perf_tool *tool, union perf_event *event,
33 struct ordered_events *oe);
34
Adrian Huntera16ac022015-04-09 18:53:43 +030035typedef s64 (*event_op3)(struct perf_tool *tool, union perf_event *event,
36 struct perf_session *session);
37
David Carrillo-Cisneros114f7092017-07-17 21:25:47 -070038enum show_feature_header {
39 SHOW_FEAT_NO_HEADER = 0,
40 SHOW_FEAT_HEADER,
41 SHOW_FEAT_HEADER_FULL_INFO,
42};
43
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020044struct perf_tool {
45 event_sample sample,
46 read;
47 event_op mmap,
Stephane Eranian5c5e8542013-08-21 12:10:25 +020048 mmap2,
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020049 comm,
Hari Bathinif3b36142017-03-08 02:11:43 +053050 namespaces,
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020051 fork,
52 exit,
53 lost,
Kan Liangc4937a92015-05-10 15:13:15 -040054 lost_samples,
Adrian Hunter4a96f7a2015-04-30 17:37:29 +030055 aux,
Adrian Hunter0ad21f62015-04-30 17:37:30 +030056 itrace_start,
Adrian Hunter02860392015-07-21 12:44:03 +030057 context_switch,
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020058 throttle,
59 unthrottle;
60 event_attr_op attr;
Jiri Olsaffe777252015-10-25 15:51:36 +010061 event_attr_op event_update;
Adrian Hunter47c3d102013-07-04 16:20:21 +030062 event_op2 tracing_data;
Arnaldo Carvalho de Melod704ebd2015-03-03 12:37:54 -030063 event_oe finished_round;
64 event_op2 build_id,
Adrian Huntera16ac022015-04-09 18:53:43 +030065 id_index,
Adrian Huntere9bf54d2015-04-09 18:53:47 +030066 auxtrace_info,
Jiri Olsa5f3339d2015-10-25 15:51:19 +010067 auxtrace_error,
Adrian Hunter46bc29b2016-03-08 10:38:44 +020068 time_conv,
Jiri Olsa6640b6c2015-10-25 15:51:23 +010069 thread_map,
Jiri Olsa374fb9e2015-10-25 15:51:27 +010070 cpu_map,
Jiri Olsad80518c2015-10-25 15:51:30 +010071 stat_config,
Jiri Olsa2d8f0f12015-10-25 15:51:33 +010072 stat,
David Carrillo-Cisnerose9def1b2017-07-17 21:25:48 -070073 stat_round,
74 feature;
Adrian Huntera16ac022015-04-09 18:53:43 +030075 event_op3 auxtrace;
Jiri Olsa0a8cb852014-07-06 14:18:21 +020076 bool ordered_events;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020077 bool ordering_requires_timestamps;
Hari Bathinif3b36142017-03-08 02:11:43 +053078 bool namespace_events;
Jiri Olsa075ca1e2018-01-07 17:03:54 +010079 bool no_warn;
David Carrillo-Cisneros114f7092017-07-17 21:25:47 -070080 enum show_feature_header show_feat_hdr;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020081};
82
83#endif /* __PERF_TOOL_H */