blob: 7a4c32c545f46cf239b40484fa535f1d53950b6f [file] [log] [blame]
Arnaldo Carvalho de Melo94c744b2009-12-11 21:24:02 -02001#ifndef __PERF_SESSION_H
2#define __PERF_SESSION_H
3
Arnaldo Carvalho de Melo301a0b02009-12-13 19:50:25 -02004#include "event.h"
Arnaldo Carvalho de Melo94c744b2009-12-11 21:24:02 -02005#include "header.h"
6
7struct perf_session {
8 struct perf_header header;
9 unsigned long size;
10 int fd;
11 char filename[0];
12};
13
Arnaldo Carvalho de Melo301a0b02009-12-13 19:50:25 -020014typedef int (*event_op)(event_t *self, struct perf_session *session);
15
16struct perf_event_ops {
17 event_op process_sample_event;
18 event_op process_mmap_event;
19 event_op process_comm_event;
20 event_op process_fork_event;
21 event_op process_exit_event;
22 event_op process_lost_event;
23 event_op process_read_event;
24 event_op process_throttle_event;
25 event_op process_unthrottle_event;
26 int (*sample_type_check)(u64 sample_type);
27 unsigned long total_unknown;
28};
29
30struct perf_session *perf_session__new(const char *filename, int mode,
31 bool force);
Arnaldo Carvalho de Melo94c744b2009-12-11 21:24:02 -020032void perf_session__delete(struct perf_session *self);
33
Arnaldo Carvalho de Melo301a0b02009-12-13 19:50:25 -020034int perf_session__process_events(struct perf_session *self,
35 struct perf_event_ops *event_ops,
36 int full_paths, int *cwdlen, char **cwd);
37
38int perf_header__read_build_ids(int input, u64 offset, u64 file_size);
39
Arnaldo Carvalho de Melo94c744b2009-12-11 21:24:02 -020040#endif /* __PERF_SESSION_H */