diff options
Diffstat (limited to 'tools/perf/util/session.h')
-rw-r--r-- | tools/perf/util/session.h | 62 |
1 files changed, 14 insertions, 48 deletions
diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index 6e393c98eb34..30e9c6b6fc3c 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h | |||
@@ -30,9 +30,6 @@ struct perf_session { | |||
30 | struct perf_header header; | 30 | struct perf_header header; |
31 | unsigned long size; | 31 | unsigned long size; |
32 | unsigned long mmap_window; | 32 | unsigned long mmap_window; |
33 | struct rb_root threads; | ||
34 | struct list_head dead_threads; | ||
35 | struct thread *last_match; | ||
36 | struct machine host_machine; | 33 | struct machine host_machine; |
37 | struct rb_root machines; | 34 | struct rb_root machines; |
38 | struct perf_evlist *evlist; | 35 | struct perf_evlist *evlist; |
@@ -53,65 +50,31 @@ struct perf_session { | |||
53 | int cwdlen; | 50 | int cwdlen; |
54 | char *cwd; | 51 | char *cwd; |
55 | struct ordered_samples ordered_samples; | 52 | struct ordered_samples ordered_samples; |
56 | struct callchain_cursor callchain_cursor; | ||
57 | char filename[0]; | 53 | char filename[0]; |
58 | }; | 54 | }; |
59 | 55 | ||
60 | struct perf_evsel; | 56 | struct perf_tool; |
61 | struct perf_event_ops; | ||
62 | |||
63 | typedef int (*event_sample)(union perf_event *event, struct perf_sample *sample, | ||
64 | struct perf_evsel *evsel, struct perf_session *session); | ||
65 | typedef int (*event_op)(union perf_event *self, struct perf_sample *sample, | ||
66 | struct perf_session *session); | ||
67 | typedef int (*event_synth_op)(union perf_event *self, | ||
68 | struct perf_session *session); | ||
69 | typedef int (*event_op2)(union perf_event *self, struct perf_session *session, | ||
70 | struct perf_event_ops *ops); | ||
71 | |||
72 | struct perf_event_ops { | ||
73 | event_sample sample; | ||
74 | event_op mmap, | ||
75 | comm, | ||
76 | fork, | ||
77 | exit, | ||
78 | lost, | ||
79 | read, | ||
80 | throttle, | ||
81 | unthrottle; | ||
82 | event_synth_op attr, | ||
83 | event_type, | ||
84 | tracing_data, | ||
85 | build_id; | ||
86 | event_op2 finished_round; | ||
87 | bool ordered_samples; | ||
88 | bool ordering_requires_timestamps; | ||
89 | }; | ||
90 | 57 | ||
91 | struct perf_session *perf_session__new(const char *filename, int mode, | 58 | struct perf_session *perf_session__new(const char *filename, int mode, |
92 | bool force, bool repipe, | 59 | bool force, bool repipe, |
93 | struct perf_event_ops *ops); | 60 | struct perf_tool *tool); |
94 | void perf_session__delete(struct perf_session *self); | 61 | void perf_session__delete(struct perf_session *self); |
95 | 62 | ||
96 | void perf_event_header__bswap(struct perf_event_header *self); | 63 | void perf_event_header__bswap(struct perf_event_header *self); |
97 | 64 | ||
98 | int __perf_session__process_events(struct perf_session *self, | 65 | int __perf_session__process_events(struct perf_session *self, |
99 | u64 data_offset, u64 data_size, u64 size, | 66 | u64 data_offset, u64 data_size, u64 size, |
100 | struct perf_event_ops *ops); | 67 | struct perf_tool *tool); |
101 | int perf_session__process_events(struct perf_session *self, | 68 | int perf_session__process_events(struct perf_session *self, |
102 | struct perf_event_ops *event_ops); | 69 | struct perf_tool *tool); |
103 | 70 | ||
104 | int perf_session__resolve_callchain(struct perf_session *self, | 71 | int perf_session__resolve_callchain(struct perf_session *self, struct perf_evsel *evsel, |
105 | struct thread *thread, | 72 | struct thread *thread, |
106 | struct ip_callchain *chain, | 73 | struct ip_callchain *chain, |
107 | struct symbol **parent); | 74 | struct symbol **parent); |
108 | 75 | ||
109 | bool perf_session__has_traces(struct perf_session *self, const char *msg); | 76 | bool perf_session__has_traces(struct perf_session *self, const char *msg); |
110 | 77 | ||
111 | int perf_session__set_kallsyms_ref_reloc_sym(struct map **maps, | ||
112 | const char *symbol_name, | ||
113 | u64 addr); | ||
114 | |||
115 | void mem_bswap_64(void *src, int byte_size); | 78 | void mem_bswap_64(void *src, int byte_size); |
116 | void perf_event__attr_swap(struct perf_event_attr *attr); | 79 | void perf_event__attr_swap(struct perf_event_attr *attr); |
117 | 80 | ||
@@ -144,12 +107,16 @@ struct machine *perf_session__findnew_machine(struct perf_session *self, pid_t p | |||
144 | 107 | ||
145 | static inline | 108 | static inline |
146 | void perf_session__process_machines(struct perf_session *self, | 109 | void perf_session__process_machines(struct perf_session *self, |
110 | struct perf_tool *tool, | ||
147 | machine__process_t process) | 111 | machine__process_t process) |
148 | { | 112 | { |
149 | process(&self->host_machine, self); | 113 | process(&self->host_machine, tool); |
150 | return machines__process(&self->machines, process, self); | 114 | return machines__process(&self->machines, process, tool); |
151 | } | 115 | } |
152 | 116 | ||
117 | struct thread *perf_session__findnew(struct perf_session *self, pid_t pid); | ||
118 | size_t perf_session__fprintf(struct perf_session *self, FILE *fp); | ||
119 | |||
153 | size_t perf_session__fprintf_dsos(struct perf_session *self, FILE *fp); | 120 | size_t perf_session__fprintf_dsos(struct perf_session *self, FILE *fp); |
154 | 121 | ||
155 | size_t perf_session__fprintf_dsos_buildid(struct perf_session *self, | 122 | size_t perf_session__fprintf_dsos_buildid(struct perf_session *self, |
@@ -170,10 +137,9 @@ static inline int perf_session__parse_sample(struct perf_session *session, | |||
170 | struct perf_evsel *perf_session__find_first_evtype(struct perf_session *session, | 137 | struct perf_evsel *perf_session__find_first_evtype(struct perf_session *session, |
171 | unsigned int type); | 138 | unsigned int type); |
172 | 139 | ||
173 | void perf_session__print_ip(union perf_event *event, | 140 | void perf_event__print_ip(union perf_event *event, struct perf_sample *sample, |
174 | struct perf_sample *sample, | 141 | struct machine *machine, struct perf_evsel *evsel, |
175 | struct perf_session *session, | 142 | int print_sym, int print_dso); |
176 | int print_sym, int print_dso); | ||
177 | 143 | ||
178 | int perf_session__cpu_bitmap(struct perf_session *session, | 144 | int perf_session__cpu_bitmap(struct perf_session *session, |
179 | const char *cpu_list, unsigned long *cpu_bitmap); | 145 | const char *cpu_list, unsigned long *cpu_bitmap); |