]>
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 | ||
9958e1f0 ACM |
8 | struct thread { |
9 | struct rb_node rb_node; | |
10 | struct map_groups mg; | |
11 | pid_t pid; | |
0ec04e16 | 12 | char shortname[3]; |
faa5c5c3 | 13 | bool comm_set; |
b5fae128 | 14 | char *comm; |
a4fb581b | 15 | int comm_len; |
6baa0a5a FW |
16 | }; |
17 | ||
4b8cf846 ACM |
18 | struct perf_session; |
19 | ||
d6d901c2 | 20 | int find_all_tid(int pid, pid_t ** all_tid); |
6baa0a5a | 21 | int thread__set_comm(struct thread *self, const char *comm); |
a4fb581b | 22 | int thread__comm_len(struct thread *self); |
b3165f41 | 23 | struct thread *perf_session__findnew(struct perf_session *self, pid_t pid); |
6baa0a5a FW |
24 | void thread__insert_map(struct thread *self, struct map *map); |
25 | int thread__fork(struct thread *self, struct thread *parent); | |
b3165f41 | 26 | size_t perf_session__fprintf(struct perf_session *self, FILE *fp); |
8b40f521 | 27 | |
9958e1f0 ACM |
28 | static inline struct map *thread__find_map(struct thread *self, |
29 | enum map_type type, u64 addr) | |
95011c60 | 30 | { |
9958e1f0 | 31 | return self ? map_groups__find(&self->mg, type, addr) : NULL; |
95011c60 | 32 | } |
1ed091c4 | 33 | |
59ee68ec ACM |
34 | void thread__find_addr_map(struct thread *self, |
35 | struct perf_session *session, u8 cpumode, | |
a1645ce1 | 36 | enum map_type type, pid_t pid, u64 addr, |
59ee68ec ACM |
37 | struct addr_location *al); |
38 | ||
4aa65636 ACM |
39 | void thread__find_addr_location(struct thread *self, |
40 | struct perf_session *session, u8 cpumode, | |
a1645ce1 | 41 | enum map_type type, pid_t pid, u64 addr, |
1ed091c4 ACM |
42 | struct addr_location *al, |
43 | symbol_filter_t filter); | |
8b40f521 | 44 | #endif /* __PERF_THREAD_H */ |