perf session: Move full_paths config to symbol_conf
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / tools / perf / util / session.h
blob2ff77fea06efeb8babf1011988744b67be1ca3fa
1 #ifndef __PERF_SESSION_H
2 #define __PERF_SESSION_H
4 #include "event.h"
5 #include "header.h"
6 #include "thread.h"
7 #include <linux/rbtree.h>
8 #include "../../../include/linux/perf_event.h"
10 struct ip_callchain;
11 struct thread;
12 struct symbol;
14 struct perf_session {
15 struct perf_header header;
16 unsigned long size;
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;
24 struct rb_root hists;
25 u64 sample_type;
26 int fd;
27 int cwdlen;
28 char *cwd;
29 char filename[0];
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 */