blob: 62b16b6165bafae5fd80cb79d1670628f1d81847 [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,
32 comm,
33 fork,
34 exit,
35 lost,
36 throttle,
37 unthrottle;
38 event_attr_op attr;
Adrian Hunter47c3d102013-07-04 16:20:21 +030039 event_op2 tracing_data;
Arnaldo Carvalho de Melo45694aa2011-11-28 08:30:20 -020040 event_op2 finished_round,
41 build_id;
42 bool ordered_samples;
43 bool ordering_requires_timestamps;
44};
45
46#endif /* __PERF_TOOL_H */