1 #ifndef __PERF_SESSION_H
2 #define __PERF_SESSION_H
7 #include <linux/rbtree.h>
8 #include "../../../include/linux/perf_event.h"
15 struct perf_header header
;
17 unsigned long mmap_window
;
18 struct map_groups kmaps
;
19 struct rb_root threads
;
20 struct thread
*last_match
;
21 struct events_stats events_stats
;
22 unsigned long event_total
[PERF_RECORD_MAX
];
23 unsigned long unknown_events
;
32 typedef int (*event_op
)(event_t
*self
, struct perf_session
*session
);
34 struct perf_event_ops
{
35 event_op process_sample_event
;
36 event_op process_mmap_event
;
37 event_op process_comm_event
;
38 event_op process_fork_event
;
39 event_op process_exit_event
;
40 event_op process_lost_event
;
41 event_op process_read_event
;
42 event_op process_throttle_event
;
43 event_op process_unthrottle_event
;
46 struct perf_session
*perf_session__new(const char *filename
, int mode
, bool force
);
47 void perf_session__delete(struct perf_session
*self
);
49 int perf_session__process_events(struct perf_session
*self
,
50 struct perf_event_ops
*event_ops
);
52 struct symbol
**perf_session__resolve_callchain(struct perf_session
*self
,
53 struct thread
*thread
,
54 struct ip_callchain
*chain
,
55 struct symbol
**parent
);
57 bool perf_session__has_traces(struct perf_session
*self
, const char *msg
);
59 int perf_header__read_build_ids(int input
, u64 offset
, u64 file_size
);
61 #endif /* __PERF_SESSION_H */