Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#ifndef __PERF_THREAD_H
2#define __PERF_THREAD_H
3
4#include <linux/rbtree.h>
5#include <unistd.h>
6#include "symbol.h"
7
8struct thread {
9 struct rb_node rb_node;
10 struct map_groups mg;
11 pid_t pid;
12 char shortname[3];
13 bool comm_set;
14 char *comm;
15 int comm_len;
16};
17
18struct perf_session;
19
20int find_all_tid(int pid, pid_t ** all_tid);
21int thread__set_comm(struct thread *self, const char *comm);
22int thread__comm_len(struct thread *self);
23struct thread *perf_session__findnew(struct perf_session *self, pid_t pid);
24void thread__insert_map(struct thread *self, struct map *map);
25int thread__fork(struct thread *self, struct thread *parent);
26size_t perf_session__fprintf(struct perf_session *self, FILE *fp);
27
28static inline struct map *thread__find_map(struct thread *self,
29 enum map_type type, u64 addr)
30{
31 return self ? map_groups__find(&self->mg, type, addr) : NULL;
32}
33
34void thread__find_addr_map(struct thread *self,
35 struct perf_session *session, u8 cpumode,
36 enum map_type type, pid_t pid, u64 addr,
37 struct addr_location *al);
38
39void thread__find_addr_location(struct thread *self,
40 struct perf_session *session, u8 cpumode,
41 enum map_type type, pid_t pid, u64 addr,
42 struct addr_location *al,
43 symbol_filter_t filter);
44#endif /* __PERF_THREAD_H */