diff options
Diffstat (limited to 'tools/perf/util/thread.h')
-rw-r--r-- | tools/perf/util/thread.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/perf/util/thread.h b/tools/perf/util/thread.h index 54580bb80008..3bdd9b2276f0 100644 --- a/tools/perf/util/thread.h +++ b/tools/perf/util/thread.h | |||
@@ -7,20 +7,22 @@ | |||
7 | 7 | ||
8 | struct thread { | 8 | struct thread { |
9 | struct rb_node rb_node; | 9 | struct rb_node rb_node; |
10 | struct rb_root maps; | 10 | struct rb_root maps[MAP__NR_TYPES]; |
11 | struct list_head removed_maps; | 11 | struct list_head removed_maps[MAP__NR_TYPES]; |
12 | pid_t pid; | 12 | pid_t pid; |
13 | char shortname[3]; | 13 | char shortname[3]; |
14 | char *comm; | 14 | char *comm; |
15 | int comm_len; | 15 | int comm_len; |
16 | }; | 16 | }; |
17 | 17 | ||
18 | void thread__init(struct thread *self, pid_t pid); | ||
18 | int thread__set_comm(struct thread *self, const char *comm); | 19 | int thread__set_comm(struct thread *self, const char *comm); |
19 | int thread__comm_len(struct thread *self); | 20 | int thread__comm_len(struct thread *self); |
20 | struct thread *threads__findnew(pid_t pid); | 21 | struct thread *threads__findnew(pid_t pid); |
21 | struct thread *register_idle_thread(void); | 22 | struct thread *register_idle_thread(void); |
22 | void thread__insert_map(struct thread *self, struct map *map); | 23 | void thread__insert_map(struct thread *self, struct map *map); |
23 | int thread__fork(struct thread *self, struct thread *parent); | 24 | int thread__fork(struct thread *self, struct thread *parent); |
25 | size_t thread__fprintf_maps(struct thread *self, FILE *fp); | ||
24 | size_t threads__fprintf(FILE *fp); | 26 | size_t threads__fprintf(FILE *fp); |
25 | 27 | ||
26 | void maps__insert(struct rb_root *maps, struct map *map); | 28 | void maps__insert(struct rb_root *maps, struct map *map); |
@@ -29,9 +31,14 @@ struct map *maps__find(struct rb_root *maps, u64 ip); | |||
29 | struct symbol *kernel_maps__find_function(const u64 ip, struct map **mapp, | 31 | struct symbol *kernel_maps__find_function(const u64 ip, struct map **mapp, |
30 | symbol_filter_t filter); | 32 | symbol_filter_t filter); |
31 | 33 | ||
32 | static inline struct map *thread__find_map(struct thread *self, u64 ip) | 34 | static inline struct map *thread__find_map(struct thread *self, |
35 | enum map_type type, u64 ip) | ||
33 | { | 36 | { |
34 | return self ? maps__find(&self->maps, ip) : NULL; | 37 | return self ? maps__find(&self->maps[type], ip) : NULL; |
35 | } | 38 | } |
36 | 39 | ||
40 | static inline void __thread__insert_map(struct thread *self, struct map *map) | ||
41 | { | ||
42 | maps__insert(&self->maps[map->type], map); | ||
43 | } | ||
37 | #endif /* __PERF_THREAD_H */ | 44 | #endif /* __PERF_THREAD_H */ |