blob: f11636966a0f19ee3e77b8e16f0f55e6db505827 [file] [log] [blame]
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -02001#ifndef __PERF_TOOL_H
2#define __PERF_TOOL_H
3
Arnaldo Carvalho de Meloee29be62011-11-28 17:57:40 -02004#include <stdbool.h>
5
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -02006struct perf_session;
Arnaldo Carvalho de Meloee29be62011-11-28 17:57:40 -02007union perf_event;
8struct perf_evlist;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -02009struct perf_evsel;
Arnaldo Carvalho de Meloee29be62011-11-28 17:57:40 -020010struct perf_sample;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020011struct perf_tool;
12struct machine;
13
14typedef int (*event_sample)(struct perf_tool *tool, union perf_event *event,
15 struct perf_sample *sample,
16 struct perf_evsel *evsel, struct machine *machine);
17
18typedef int (*event_op)(struct perf_tool *tool, union perf_event *event,
19 struct perf_sample *sample, struct machine *machine);
20
Adrian Hunter47c3d102013-07-04 16:20:21 +030021typedef int (*event_attr_op)(struct perf_tool *tool,
22 union perf_event *event,
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020023 struct perf_evlist **pevlist);
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020024
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020025typedef int (*event_op2)(struct perf_tool *tool, union perf_event *event,
26 struct perf_session *session);
27
28struct perf_tool {
29 event_sample sample,
30 read;
31 event_op mmap,
Stephane Eranian5c5e8542013-08-21 12:10:25 +020032 mmap2,
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020033 comm,
34 fork,
35 exit,
36 lost,
37 throttle,
38 unthrottle;
39 event_attr_op attr;
Adrian Hunter47c3d102013-07-04 16:20:21 +030040 event_op2 tracing_data;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020041 event_op2 finished_round,
42 build_id;
Jiri Olsa0a8cb852014-07-06 14:18:21 +020043 bool ordered_events;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020044 bool ordering_requires_timestamps;
45};
46
47#endif /* __PERF_TOOL_H */