Commit | Line | Data |
---|---|---|
8b40f521 JK |
1 | #ifndef __PERF_THREAD_H |
2 | #define __PERF_THREAD_H | |
3 | ||
6baa0a5a | 4 | #include <linux/rbtree.h> |
6baa0a5a FW |
5 | #include <unistd.h> |
6 | #include "symbol.h" | |
7 | ||
8 | struct thread { | |
b5fae128 | 9 | struct rb_node rb_node; |
1b46cddf | 10 | struct rb_root maps; |
439d473b | 11 | struct list_head removed_maps; |
b5fae128 | 12 | pid_t pid; |
0ec04e16 | 13 | char shortname[3]; |
b5fae128 | 14 | char *comm; |
6baa0a5a FW |
15 | }; |
16 | ||
17 | int thread__set_comm(struct thread *self, const char *comm); | |
18 | struct thread * | |
19 | threads__findnew(pid_t pid, struct rb_root *threads, struct thread **last_match); | |
5b447a6a FW |
20 | struct thread * |
21 | register_idle_thread(struct rb_root *threads, struct thread **last_match); | |
6baa0a5a FW |
22 | void thread__insert_map(struct thread *self, struct map *map); |
23 | int thread__fork(struct thread *self, struct thread *parent); | |
6baa0a5a | 24 | size_t threads__fprintf(FILE *fp, struct rb_root *threads); |
8b40f521 | 25 | |
1b46cddf ACM |
26 | void maps__insert(struct rb_root *maps, struct map *map); |
27 | struct map *maps__find(struct rb_root *maps, u64 ip); | |
28 | ||
439d473b ACM |
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 | ||
1b46cddf ACM |
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 | ||
8b40f521 | 37 | #endif /* __PERF_THREAD_H */ |