]> bbs.cooldavid.org Git - net-next-2.6.git/blame - tools/perf/util/thread.h
Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuil...
[net-next-2.6.git] / tools / perf / util / thread.h
CommitLineData
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 8struct thread {
720a3aeb
ACM
9 union {
10 struct rb_node rb_node;
11 struct list_head node;
12 };
9958e1f0
ACM
13 struct map_groups mg;
14 pid_t pid;
0ec04e16 15 char shortname[3];
faa5c5c3 16 bool comm_set;
b5fae128 17 char *comm;
a4fb581b 18 int comm_len;
6baa0a5a
FW
19};
20
4b8cf846
ACM
21struct perf_session;
22
d6d901c2 23int find_all_tid(int pid, pid_t ** all_tid);
6baa0a5a 24int thread__set_comm(struct thread *self, const char *comm);
a4fb581b 25int thread__comm_len(struct thread *self);
b3165f41 26struct thread *perf_session__findnew(struct perf_session *self, pid_t pid);
6baa0a5a
FW
27void thread__insert_map(struct thread *self, struct map *map);
28int thread__fork(struct thread *self, struct thread *parent);
b3165f41 29size_t perf_session__fprintf(struct perf_session *self, FILE *fp);
8b40f521 30
9958e1f0
ACM
31static inline struct map *thread__find_map(struct thread *self,
32 enum map_type type, u64 addr)
95011c60 33{
9958e1f0 34 return self ? map_groups__find(&self->mg, type, addr) : NULL;
95011c60 35}
1ed091c4 36
59ee68ec
ACM
37void thread__find_addr_map(struct thread *self,
38 struct perf_session *session, u8 cpumode,
a1645ce1 39 enum map_type type, pid_t pid, u64 addr,
59ee68ec
ACM
40 struct addr_location *al);
41
4aa65636
ACM
42void thread__find_addr_location(struct thread *self,
43 struct perf_session *session, u8 cpumode,
a1645ce1 44 enum map_type type, pid_t pid, u64 addr,
1ed091c4
ACM
45 struct addr_location *al,
46 symbol_filter_t filter);
8b40f521 47#endif /* __PERF_THREAD_H */