diff options
Diffstat (limited to 'tools/perf/util/session.h')
-rw-r--r-- | tools/perf/util/session.h | 55 |
1 files changed, 41 insertions, 14 deletions
diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index 32eaa1bada06..31950fcd8a4d 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h | |||
@@ -3,13 +3,13 @@ | |||
3 | 3 | ||
4 | #include "event.h" | 4 | #include "event.h" |
5 | #include "header.h" | 5 | #include "header.h" |
6 | #include "symbol.h" | ||
6 | #include "thread.h" | 7 | #include "thread.h" |
7 | #include <linux/rbtree.h> | 8 | #include <linux/rbtree.h> |
8 | #include "../../../include/linux/perf_event.h" | 9 | #include "../../../include/linux/perf_event.h" |
9 | 10 | ||
10 | struct ip_callchain; | 11 | struct ip_callchain; |
11 | struct thread; | 12 | struct thread; |
12 | struct symbol; | ||
13 | 13 | ||
14 | struct perf_session { | 14 | struct perf_session { |
15 | struct perf_header header; | 15 | struct perf_header header; |
@@ -18,10 +18,13 @@ struct perf_session { | |||
18 | struct map_groups kmaps; | 18 | struct map_groups kmaps; |
19 | struct rb_root threads; | 19 | struct rb_root threads; |
20 | struct thread *last_match; | 20 | struct thread *last_match; |
21 | struct map *vmlinux_maps[MAP__NR_TYPES]; | ||
21 | struct events_stats events_stats; | 22 | struct events_stats events_stats; |
22 | unsigned long event_total[PERF_RECORD_MAX]; | 23 | unsigned long event_total[PERF_RECORD_MAX]; |
24 | unsigned long unknown_events; | ||
23 | struct rb_root hists; | 25 | struct rb_root hists; |
24 | u64 sample_type; | 26 | u64 sample_type; |
27 | struct ref_reloc_sym ref_reloc_sym; | ||
25 | int fd; | 28 | int fd; |
26 | int cwdlen; | 29 | int cwdlen; |
27 | char *cwd; | 30 | char *cwd; |
@@ -31,23 +34,25 @@ struct perf_session { | |||
31 | typedef int (*event_op)(event_t *self, struct perf_session *session); | 34 | typedef int (*event_op)(event_t *self, struct perf_session *session); |
32 | 35 | ||
33 | struct perf_event_ops { | 36 | struct perf_event_ops { |
34 | event_op process_sample_event; | 37 | event_op sample, |
35 | event_op process_mmap_event; | 38 | mmap, |
36 | event_op process_comm_event; | 39 | comm, |
37 | event_op process_fork_event; | 40 | fork, |
38 | event_op process_exit_event; | 41 | exit, |
39 | event_op process_lost_event; | 42 | lost, |
40 | event_op process_read_event; | 43 | read, |
41 | event_op process_throttle_event; | 44 | throttle, |
42 | event_op process_unthrottle_event; | 45 | unthrottle; |
43 | int (*sample_type_check)(struct perf_session *session); | ||
44 | unsigned long total_unknown; | ||
45 | bool full_paths; | ||
46 | }; | 46 | }; |
47 | 47 | ||
48 | struct perf_session *perf_session__new(const char *filename, int mode, bool force); | 48 | struct perf_session *perf_session__new(const char *filename, int mode, bool force); |
49 | void perf_session__delete(struct perf_session *self); | 49 | void perf_session__delete(struct perf_session *self); |
50 | 50 | ||
51 | void perf_event_header__bswap(struct perf_event_header *self); | ||
52 | |||
53 | int __perf_session__process_events(struct perf_session *self, | ||
54 | u64 data_offset, u64 data_size, u64 size, | ||
55 | struct perf_event_ops *ops); | ||
51 | int perf_session__process_events(struct perf_session *self, | 56 | int perf_session__process_events(struct perf_session *self, |
52 | struct perf_event_ops *event_ops); | 57 | struct perf_event_ops *event_ops); |
53 | 58 | ||
@@ -56,6 +61,28 @@ struct symbol **perf_session__resolve_callchain(struct perf_session *self, | |||
56 | struct ip_callchain *chain, | 61 | struct ip_callchain *chain, |
57 | struct symbol **parent); | 62 | struct symbol **parent); |
58 | 63 | ||
59 | int perf_header__read_build_ids(int input, u64 offset, u64 file_size); | 64 | bool perf_session__has_traces(struct perf_session *self, const char *msg); |
65 | |||
66 | int perf_header__read_build_ids(struct perf_header *self, int input, | ||
67 | u64 offset, u64 file_size); | ||
68 | |||
69 | int perf_session__set_kallsyms_ref_reloc_sym(struct perf_session *self, | ||
70 | const char *symbol_name, | ||
71 | u64 addr); | ||
72 | |||
73 | void mem_bswap_64(void *src, int byte_size); | ||
74 | |||
75 | static inline int __perf_session__create_kernel_maps(struct perf_session *self, | ||
76 | struct dso *kernel) | ||
77 | { | ||
78 | return __map_groups__create_kernel_maps(&self->kmaps, | ||
79 | self->vmlinux_maps, kernel); | ||
80 | } | ||
60 | 81 | ||
82 | static inline struct map * | ||
83 | perf_session__new_module_map(struct perf_session *self, | ||
84 | u64 start, const char *filename) | ||
85 | { | ||
86 | return map_groups__new_module(&self->kmaps, start, filename); | ||
87 | } | ||
61 | #endif /* __PERF_SESSION_H */ | 88 | #endif /* __PERF_SESSION_H */ |