1 #ifndef __PERF_THREAD_H
2 #define __PERF_THREAD_H
4 #include <linux/rbtree.h>
9 struct rb_root maps
[MAP__NR_TYPES
];
10 struct list_head removed_maps
[MAP__NR_TYPES
];
14 struct rb_node rb_node
;
22 void map_groups__init(struct map_groups
*self
);
23 int thread__set_comm(struct thread
*self
, const char *comm
);
24 int thread__comm_len(struct thread
*self
);
25 struct thread
*perf_session__findnew(struct perf_session
*self
, pid_t pid
);
26 void thread__insert_map(struct thread
*self
, struct map
*map
);
27 int thread__fork(struct thread
*self
, struct thread
*parent
);
28 size_t map_groups__fprintf_maps(struct map_groups
*self
, FILE *fp
);
29 size_t perf_session__fprintf(struct perf_session
*self
, FILE *fp
);
31 void maps__insert(struct rb_root
*maps
, struct map
*map
);
32 struct map
*maps__find(struct rb_root
*maps
, u64 addr
);
34 static inline void map_groups__insert(struct map_groups
*self
, struct map
*map
)
36 maps__insert(&self
->maps
[map
->type
], map
);
39 static inline struct map
*map_groups__find(struct map_groups
*self
,
40 enum map_type type
, u64 addr
)
42 return maps__find(&self
->maps
[type
], addr
);
45 static inline struct map
*thread__find_map(struct thread
*self
,
46 enum map_type type
, u64 addr
)
48 return self
? map_groups__find(&self
->mg
, type
, addr
) : NULL
;
51 void thread__find_addr_location(struct thread
*self
,
52 struct perf_session
*session
, u8 cpumode
,
53 enum map_type type
, u64 addr
,
54 struct addr_location
*al
,
55 symbol_filter_t filter
);
56 struct symbol
*map_groups__find_symbol(struct map_groups
*self
,
57 struct perf_session
*session
,
58 enum map_type type
, u64 addr
,
59 symbol_filter_t filter
);
61 static inline struct symbol
*
62 map_groups__find_function(struct map_groups
*self
, struct perf_session
*session
,
63 u64 addr
, symbol_filter_t filter
)
65 return map_groups__find_symbol(self
, session
, MAP__FUNCTION
, addr
, filter
);
68 struct map
*map_groups__find_by_name(struct map_groups
*self
,
69 enum map_type type
, const char *name
);
70 #endif /* __PERF_THREAD_H */