aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/session.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/session.h')
-rw-r--r--tools/perf/util/session.h49
1 files changed, 7 insertions, 42 deletions
diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h
index 1c5823c7d6dc..30e9c6b6fc3c 100644
--- a/tools/perf/util/session.h
+++ b/tools/perf/util/session.h
@@ -53,55 +53,20 @@ struct perf_session {
53 char filename[0]; 53 char filename[0];
54}; 54};
55 55
56struct perf_evsel; 56struct perf_tool;
57struct perf_event_ops;
58
59typedef int (*event_sample)(struct perf_event_ops *ops,
60 union perf_event *event, struct perf_sample *sample,
61 struct perf_evsel *evsel, struct machine *machine);
62typedef int (*event_op)(struct perf_event_ops *ops, union perf_event *event,
63 struct perf_sample *sample,
64 struct machine *machine);
65typedef int (*event_synth_op)(union perf_event *self,
66 struct perf_session *session);
67typedef int (*event_attr_op)(union perf_event *event,
68 struct perf_evlist **pevlist);
69typedef int (*event_simple_op)(struct perf_event_ops *ops,
70 union perf_event *event);
71typedef int (*event_op2)(struct perf_event_ops *ops, union perf_event *event,
72 struct perf_session *session);
73
74struct perf_event_ops {
75 event_sample sample,
76 read;
77 event_op mmap,
78 comm,
79 fork,
80 exit,
81 lost,
82 throttle,
83 unthrottle;
84 event_attr_op attr;
85 event_synth_op tracing_data;
86 event_simple_op event_type;
87 event_op2 finished_round,
88 build_id;
89 bool ordered_samples;
90 bool ordering_requires_timestamps;
91};
92 57
93struct perf_session *perf_session__new(const char *filename, int mode, 58struct perf_session *perf_session__new(const char *filename, int mode,
94 bool force, bool repipe, 59 bool force, bool repipe,
95 struct perf_event_ops *ops); 60 struct perf_tool *tool);
96void perf_session__delete(struct perf_session *self); 61void perf_session__delete(struct perf_session *self);
97 62
98void perf_event_header__bswap(struct perf_event_header *self); 63void perf_event_header__bswap(struct perf_event_header *self);
99 64
100int __perf_session__process_events(struct perf_session *self, 65int __perf_session__process_events(struct perf_session *self,
101 u64 data_offset, u64 data_size, u64 size, 66 u64 data_offset, u64 data_size, u64 size,
102 struct perf_event_ops *ops); 67 struct perf_tool *tool);
103int perf_session__process_events(struct perf_session *self, 68int perf_session__process_events(struct perf_session *self,
104 struct perf_event_ops *event_ops); 69 struct perf_tool *tool);
105 70
106int perf_session__resolve_callchain(struct perf_session *self, struct perf_evsel *evsel, 71int perf_session__resolve_callchain(struct perf_session *self, struct perf_evsel *evsel,
107 struct thread *thread, 72 struct thread *thread,
@@ -142,11 +107,11 @@ struct machine *perf_session__findnew_machine(struct perf_session *self, pid_t p
142 107
143static inline 108static inline
144void perf_session__process_machines(struct perf_session *self, 109void perf_session__process_machines(struct perf_session *self,
145 struct perf_event_ops *ops, 110 struct perf_tool *tool,
146 machine__process_t process) 111 machine__process_t process)
147{ 112{
148 process(&self->host_machine, ops); 113 process(&self->host_machine, tool);
149 return machines__process(&self->machines, process, ops); 114 return machines__process(&self->machines, process, tool);
150} 115}
151 116
152struct thread *perf_session__findnew(struct perf_session *self, pid_t pid); 117struct thread *perf_session__findnew(struct perf_session *self, pid_t pid);