1 #ifndef __PERF_THREAD_H
2 #define __PERF_THREAD_H
4 #include <linux/rbtree.h>
11 struct rb_node rb_node
;
12 struct list_head node
;
15 pid_t pid_
; /* Not all tools update this */
20 bool dead
; /* if set thread has exited */
29 struct thread
*thread__new(pid_t pid
, pid_t tid
);
30 void thread__delete(struct thread
*self
);
31 static inline void thread__exited(struct thread
*thread
)
36 int thread__set_comm(struct thread
*self
, const char *comm
);
37 int thread__comm_len(struct thread
*self
);
38 void thread__insert_map(struct thread
*self
, struct map
*map
);
39 int thread__fork(struct thread
*self
, struct thread
*parent
);
40 size_t thread__fprintf(struct thread
*thread
, FILE *fp
);
42 static inline struct map
*thread__find_map(struct thread
*self
,
43 enum map_type type
, u64 addr
)
45 return self
? map_groups__find(&self
->mg
, type
, addr
) : NULL
;
48 void thread__find_addr_map(struct thread
*thread
, struct machine
*machine
,
49 u8 cpumode
, enum map_type type
, u64 addr
,
50 struct addr_location
*al
);
52 void thread__find_addr_location(struct thread
*thread
, struct machine
*machine
,
53 u8 cpumode
, enum map_type type
, u64 addr
,
54 struct addr_location
*al
);
56 static inline void *thread__priv(struct thread
*thread
)
61 static inline void thread__set_priv(struct thread
*thread
, void *p
)
65 #endif /* __PERF_THREAD_H */