perf session: Reduce the number of parms to perf_session__process_events
[linux-2.6-block.git] / tools / perf / util / session.h
CommitLineData
94c744b6
ACM
1#ifndef __PERF_SESSION_H
2#define __PERF_SESSION_H
3
301a0b02 4#include "event.h"
94c744b6
ACM
5#include "header.h"
6
7struct perf_session {
8 struct perf_header header;
9 unsigned long size;
ec913369 10 unsigned long mmap_window;
94c744b6 11 int fd;
ec913369
ACM
12 int cwdlen;
13 char *cwd;
94c744b6
ACM
14 char filename[0];
15};
16
301a0b02
ACM
17typedef int (*event_op)(event_t *self, struct perf_session *session);
18
19struct perf_event_ops {
20 event_op process_sample_event;
21 event_op process_mmap_event;
22 event_op process_comm_event;
23 event_op process_fork_event;
24 event_op process_exit_event;
25 event_op process_lost_event;
26 event_op process_read_event;
27 event_op process_throttle_event;
28 event_op process_unthrottle_event;
29 int (*sample_type_check)(u64 sample_type);
30 unsigned long total_unknown;
ec913369 31 bool full_paths;
301a0b02
ACM
32};
33
34struct perf_session *perf_session__new(const char *filename, int mode,
35 bool force);
94c744b6
ACM
36void perf_session__delete(struct perf_session *self);
37
301a0b02 38int perf_session__process_events(struct perf_session *self,
ec913369 39 struct perf_event_ops *event_ops);
301a0b02
ACM
40
41int perf_header__read_build_ids(int input, u64 offset, u64 file_size);
42
94c744b6 43#endif /* __PERF_SESSION_H */