diff options
Diffstat (limited to 'tools/perf/util/thread.h')
-rw-r--r-- | tools/perf/util/thread.h | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/tools/perf/util/thread.h b/tools/perf/util/thread.h index 32aea3c1c2ad..53addd77ce8f 100644 --- a/tools/perf/util/thread.h +++ b/tools/perf/util/thread.h | |||
@@ -1,22 +1,37 @@ | |||
1 | #ifndef __PERF_THREAD_H | ||
2 | #define __PERF_THREAD_H | ||
3 | |||
1 | #include <linux/rbtree.h> | 4 | #include <linux/rbtree.h> |
2 | #include <linux/list.h> | ||
3 | #include <unistd.h> | 5 | #include <unistd.h> |
4 | #include "symbol.h" | 6 | #include "symbol.h" |
5 | 7 | ||
6 | struct thread { | 8 | struct thread { |
7 | struct rb_node rb_node; | 9 | struct rb_node rb_node; |
8 | struct list_head maps; | 10 | struct rb_root maps; |
11 | struct list_head removed_maps; | ||
9 | pid_t pid; | 12 | pid_t pid; |
10 | char shortname[3]; | 13 | char shortname[3]; |
11 | char *comm; | 14 | char *comm; |
15 | int comm_len; | ||
12 | }; | 16 | }; |
13 | 17 | ||
14 | int thread__set_comm(struct thread *self, const char *comm); | 18 | int thread__set_comm(struct thread *self, const char *comm); |
15 | struct thread * | 19 | int thread__comm_len(struct thread *self); |
16 | threads__findnew(pid_t pid, struct rb_root *threads, struct thread **last_match); | 20 | struct thread *threads__findnew(pid_t pid); |
17 | struct thread * | 21 | struct thread *register_idle_thread(void); |
18 | register_idle_thread(struct rb_root *threads, struct thread **last_match); | ||
19 | void thread__insert_map(struct thread *self, struct map *map); | 22 | void thread__insert_map(struct thread *self, struct map *map); |
20 | int thread__fork(struct thread *self, struct thread *parent); | 23 | int thread__fork(struct thread *self, struct thread *parent); |
21 | struct map *thread__find_map(struct thread *self, u64 ip); | 24 | size_t threads__fprintf(FILE *fp); |
22 | size_t threads__fprintf(FILE *fp, struct rb_root *threads); | 25 | |
26 | void maps__insert(struct rb_root *maps, struct map *map); | ||
27 | struct map *maps__find(struct rb_root *maps, u64 ip); | ||
28 | |||
29 | struct symbol *kernel_maps__find_symbol(const u64 ip, struct map **mapp); | ||
30 | struct map *kernel_maps__find_by_dso_name(const char *name); | ||
31 | |||
32 | static inline struct map *thread__find_map(struct thread *self, u64 ip) | ||
33 | { | ||
34 | return self ? maps__find(&self->maps, ip) : NULL; | ||
35 | } | ||
36 | |||
37 | #endif /* __PERF_THREAD_H */ | ||