perf tools: Remove event types framework completely
[linux-2.6-block.git] / tools / perf / util / tool.h
CommitLineData
45694aa7
ACM
1#ifndef __PERF_TOOL_H
2#define __PERF_TOOL_H
3
ee29be62
ACM
4#include <stdbool.h>
5
45694aa7 6struct perf_session;
ee29be62
ACM
7union perf_event;
8struct perf_evlist;
45694aa7 9struct perf_evsel;
ee29be62 10struct perf_sample;
45694aa7
ACM
11struct 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
47c3d109
AH
21typedef int (*event_attr_op)(struct perf_tool *tool,
22 union perf_event *event,
45694aa7 23 struct perf_evlist **pevlist);
45694aa7 24
45694aa7
ACM
25typedef 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;
47c3d109 39 event_op2 tracing_data;
45694aa7
ACM
40 event_op2 finished_round,
41 build_id;
42 bool ordered_samples;
43 bool ordering_requires_timestamps;
44};
45
46#endif /* __PERF_TOOL_H */