aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/util/map.c74
-rw-r--r--tools/perf/util/map.h42
2 files changed, 58 insertions, 58 deletions
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index a16ecab5229..aa2f9fd178e 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -220,55 +220,55 @@ u64 map__objdump_2ip(struct map *map, u64 addr)
220 return ip; 220 return ip;
221} 221}
222 222
223void map_groups__init(struct map_groups *self) 223void map_groups__init(struct map_groups *mg)
224{ 224{
225 int i; 225 int i;
226 for (i = 0; i < MAP__NR_TYPES; ++i) { 226 for (i = 0; i < MAP__NR_TYPES; ++i) {
227 self->maps[i] = RB_ROOT; 227 mg->maps[i] = RB_ROOT;
228 INIT_LIST_HEAD(&self->removed_maps[i]); 228 INIT_LIST_HEAD(&mg->removed_maps[i]);
229 } 229 }
230 self->machine = NULL; 230 mg->machine = NULL;
231} 231}
232 232
233static void maps__delete(struct rb_root *self) 233static void maps__delete(struct rb_root *maps)
234{ 234{
235 struct rb_node *next = rb_first(self); 235 struct rb_node *next = rb_first(maps);
236 236
237 while (next) { 237 while (next) {
238 struct map *pos = rb_entry(next, struct map, rb_node); 238 struct map *pos = rb_entry(next, struct map, rb_node);
239 239
240 next = rb_next(&pos->rb_node); 240 next = rb_next(&pos->rb_node);
241 rb_erase(&pos->rb_node, self); 241 rb_erase(&pos->rb_node, maps);
242 map__delete(pos); 242 map__delete(pos);
243 } 243 }
244} 244}
245 245
246static void maps__delete_removed(struct list_head *self) 246static void maps__delete_removed(struct list_head *maps)
247{ 247{
248 struct map *pos, *n; 248 struct map *pos, *n;
249 249
250 list_for_each_entry_safe(pos, n, self, node) { 250 list_for_each_entry_safe(pos, n, maps, node) {
251 list_del(&pos->node); 251 list_del(&pos->node);
252 map__delete(pos); 252 map__delete(pos);
253 } 253 }
254} 254}
255 255
256void map_groups__exit(struct map_groups *self) 256void map_groups__exit(struct map_groups *mg)
257{ 257{
258 int i; 258 int i;
259 259
260 for (i = 0; i < MAP__NR_TYPES; ++i) { 260 for (i = 0; i < MAP__NR_TYPES; ++i) {
261 maps__delete(&self->maps[i]); 261 maps__delete(&mg->maps[i]);
262 maps__delete_removed(&self->removed_maps[i]); 262 maps__delete_removed(&mg->removed_maps[i]);
263 } 263 }
264} 264}
265 265
266void map_groups__flush(struct map_groups *self) 266void map_groups__flush(struct map_groups *mg)
267{ 267{
268 int type; 268 int type;
269 269
270 for (type = 0; type < MAP__NR_TYPES; type++) { 270 for (type = 0; type < MAP__NR_TYPES; type++) {
271 struct rb_root *root = &self->maps[type]; 271 struct rb_root *root = &mg->maps[type];
272 struct rb_node *next = rb_first(root); 272 struct rb_node *next = rb_first(root);
273 273
274 while (next) { 274 while (next) {
@@ -280,17 +280,17 @@ void map_groups__flush(struct map_groups *self)
280 * instance in some hist_entry instances, so 280 * instance in some hist_entry instances, so
281 * just move them to a separate list. 281 * just move them to a separate list.
282 */ 282 */
283 list_add_tail(&pos->node, &self->removed_maps[pos->type]); 283 list_add_tail(&pos->node, &mg->removed_maps[pos->type]);
284 } 284 }
285 } 285 }
286} 286}
287 287
288struct symbol *map_groups__find_symbol(struct map_groups *self, 288struct symbol *map_groups__find_symbol(struct map_groups *mg,
289 enum map_type type, u64 addr, 289 enum map_type type, u64 addr,
290 struct map **mapp, 290 struct map **mapp,
291 symbol_filter_t filter) 291 symbol_filter_t filter)
292{ 292{
293 struct map *map = map_groups__find(self, type, addr); 293 struct map *map = map_groups__find(mg, type, addr);
294 294
295 if (map != NULL) { 295 if (map != NULL) {
296 if (mapp != NULL) 296 if (mapp != NULL)
@@ -301,7 +301,7 @@ struct symbol *map_groups__find_symbol(struct map_groups *self,
301 return NULL; 301 return NULL;
302} 302}
303 303
304struct symbol *map_groups__find_symbol_by_name(struct map_groups *self, 304struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,
305 enum map_type type, 305 enum map_type type,
306 const char *name, 306 const char *name,
307 struct map **mapp, 307 struct map **mapp,
@@ -309,7 +309,7 @@ struct symbol *map_groups__find_symbol_by_name(struct map_groups *self,
309{ 309{
310 struct rb_node *nd; 310 struct rb_node *nd;
311 311
312 for (nd = rb_first(&self->maps[type]); nd; nd = rb_next(nd)) { 312 for (nd = rb_first(&mg->maps[type]); nd; nd = rb_next(nd)) {
313 struct map *pos = rb_entry(nd, struct map, rb_node); 313 struct map *pos = rb_entry(nd, struct map, rb_node);
314 struct symbol *sym = map__find_symbol_by_name(pos, name, filter); 314 struct symbol *sym = map__find_symbol_by_name(pos, name, filter);
315 315
@@ -323,13 +323,13 @@ struct symbol *map_groups__find_symbol_by_name(struct map_groups *self,
323 return NULL; 323 return NULL;
324} 324}
325 325
326size_t __map_groups__fprintf_maps(struct map_groups *self, 326size_t __map_groups__fprintf_maps(struct map_groups *mg,
327 enum map_type type, int verbose, FILE *fp) 327 enum map_type type, int verbose, FILE *fp)
328{ 328{
329 size_t printed = fprintf(fp, "%s:\n", map_type__name[type]); 329 size_t printed = fprintf(fp, "%s:\n", map_type__name[type]);
330 struct rb_node *nd; 330 struct rb_node *nd;
331 331
332 for (nd = rb_first(&self->maps[type]); nd; nd = rb_next(nd)) { 332 for (nd = rb_first(&mg->maps[type]); nd; nd = rb_next(nd)) {
333 struct map *pos = rb_entry(nd, struct map, rb_node); 333 struct map *pos = rb_entry(nd, struct map, rb_node);
334 printed += fprintf(fp, "Map:"); 334 printed += fprintf(fp, "Map:");
335 printed += map__fprintf(pos, fp); 335 printed += map__fprintf(pos, fp);
@@ -342,22 +342,22 @@ size_t __map_groups__fprintf_maps(struct map_groups *self,
342 return printed; 342 return printed;
343} 343}
344 344
345size_t map_groups__fprintf_maps(struct map_groups *self, int verbose, FILE *fp) 345size_t map_groups__fprintf_maps(struct map_groups *mg, int verbose, FILE *fp)
346{ 346{
347 size_t printed = 0, i; 347 size_t printed = 0, i;
348 for (i = 0; i < MAP__NR_TYPES; ++i) 348 for (i = 0; i < MAP__NR_TYPES; ++i)
349 printed += __map_groups__fprintf_maps(self, i, verbose, fp); 349 printed += __map_groups__fprintf_maps(mg, i, verbose, fp);
350 return printed; 350 return printed;
351} 351}
352 352
353static size_t __map_groups__fprintf_removed_maps(struct map_groups *self, 353static size_t __map_groups__fprintf_removed_maps(struct map_groups *mg,
354 enum map_type type, 354 enum map_type type,
355 int verbose, FILE *fp) 355 int verbose, FILE *fp)
356{ 356{
357 struct map *pos; 357 struct map *pos;
358 size_t printed = 0; 358 size_t printed = 0;
359 359
360 list_for_each_entry(pos, &self->removed_maps[type], node) { 360 list_for_each_entry(pos, &mg->removed_maps[type], node) {
361 printed += fprintf(fp, "Map:"); 361 printed += fprintf(fp, "Map:");
362 printed += map__fprintf(pos, fp); 362 printed += map__fprintf(pos, fp);
363 if (verbose > 1) { 363 if (verbose > 1) {
@@ -368,26 +368,26 @@ static size_t __map_groups__fprintf_removed_maps(struct map_groups *self,
368 return printed; 368 return printed;
369} 369}
370 370
371static size_t map_groups__fprintf_removed_maps(struct map_groups *self, 371static size_t map_groups__fprintf_removed_maps(struct map_groups *mg,
372 int verbose, FILE *fp) 372 int verbose, FILE *fp)
373{ 373{
374 size_t printed = 0, i; 374 size_t printed = 0, i;
375 for (i = 0; i < MAP__NR_TYPES; ++i) 375 for (i = 0; i < MAP__NR_TYPES; ++i)
376 printed += __map_groups__fprintf_removed_maps(self, i, verbose, fp); 376 printed += __map_groups__fprintf_removed_maps(mg, i, verbose, fp);
377 return printed; 377 return printed;
378} 378}
379 379
380size_t map_groups__fprintf(struct map_groups *self, int verbose, FILE *fp) 380size_t map_groups__fprintf(struct map_groups *mg, int verbose, FILE *fp)
381{ 381{
382 size_t printed = map_groups__fprintf_maps(self, verbose, fp); 382 size_t printed = map_groups__fprintf_maps(mg, verbose, fp);
383 printed += fprintf(fp, "Removed maps:\n"); 383 printed += fprintf(fp, "Removed maps:\n");
384 return printed + map_groups__fprintf_removed_maps(self, verbose, fp); 384 return printed + map_groups__fprintf_removed_maps(mg, verbose, fp);
385} 385}
386 386
387int map_groups__fixup_overlappings(struct map_groups *self, struct map *map, 387int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map,
388 int verbose, FILE *fp) 388 int verbose, FILE *fp)
389{ 389{
390 struct rb_root *root = &self->maps[map->type]; 390 struct rb_root *root = &mg->maps[map->type];
391 struct rb_node *next = rb_first(root); 391 struct rb_node *next = rb_first(root);
392 int err = 0; 392 int err = 0;
393 393
@@ -418,7 +418,7 @@ int map_groups__fixup_overlappings(struct map_groups *self, struct map *map,
418 } 418 }
419 419
420 before->end = map->start - 1; 420 before->end = map->start - 1;
421 map_groups__insert(self, before); 421 map_groups__insert(mg, before);
422 if (verbose >= 2) 422 if (verbose >= 2)
423 map__fprintf(before, fp); 423 map__fprintf(before, fp);
424 } 424 }
@@ -432,7 +432,7 @@ int map_groups__fixup_overlappings(struct map_groups *self, struct map *map,
432 } 432 }
433 433
434 after->start = map->end + 1; 434 after->start = map->end + 1;
435 map_groups__insert(self, after); 435 map_groups__insert(mg, after);
436 if (verbose >= 2) 436 if (verbose >= 2)
437 map__fprintf(after, fp); 437 map__fprintf(after, fp);
438 } 438 }
@@ -441,7 +441,7 @@ move_map:
441 * If we have references, just move them to a separate list. 441 * If we have references, just move them to a separate list.
442 */ 442 */
443 if (pos->referenced) 443 if (pos->referenced)
444 list_add_tail(&pos->node, &self->removed_maps[map->type]); 444 list_add_tail(&pos->node, &mg->removed_maps[map->type]);
445 else 445 else
446 map__delete(pos); 446 map__delete(pos);
447 447
@@ -455,7 +455,7 @@ move_map:
455/* 455/*
456 * XXX This should not really _copy_ te maps, but refcount them. 456 * XXX This should not really _copy_ te maps, but refcount them.
457 */ 457 */
458int map_groups__clone(struct map_groups *self, 458int map_groups__clone(struct map_groups *mg,
459 struct map_groups *parent, enum map_type type) 459 struct map_groups *parent, enum map_type type)
460{ 460{
461 struct rb_node *nd; 461 struct rb_node *nd;
@@ -464,7 +464,7 @@ int map_groups__clone(struct map_groups *self,
464 struct map *new = map__clone(map); 464 struct map *new = map__clone(map);
465 if (new == NULL) 465 if (new == NULL)
466 return -ENOMEM; 466 return -ENOMEM;
467 map_groups__insert(self, new); 467 map_groups__insert(mg, new);
468 } 468 }
469 return 0; 469 return 0;
470} 470}
diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
index b397c038372..890d85545d0 100644
--- a/tools/perf/util/map.h
+++ b/tools/perf/util/map.h
@@ -123,17 +123,17 @@ void map__fixup_end(struct map *self);
123 123
124void map__reloc_vmlinux(struct map *self); 124void map__reloc_vmlinux(struct map *self);
125 125
126size_t __map_groups__fprintf_maps(struct map_groups *self, 126size_t __map_groups__fprintf_maps(struct map_groups *mg,
127 enum map_type type, int verbose, FILE *fp); 127 enum map_type type, int verbose, FILE *fp);
128void maps__insert(struct rb_root *maps, struct map *map); 128void maps__insert(struct rb_root *maps, struct map *map);
129void maps__remove(struct rb_root *self, struct map *map); 129void maps__remove(struct rb_root *maps, struct map *map);
130struct map *maps__find(struct rb_root *maps, u64 addr); 130struct map *maps__find(struct rb_root *maps, u64 addr);
131void map_groups__init(struct map_groups *self); 131void map_groups__init(struct map_groups *mg);
132void map_groups__exit(struct map_groups *self); 132void map_groups__exit(struct map_groups *mg);
133int map_groups__clone(struct map_groups *self, 133int map_groups__clone(struct map_groups *mg,
134 struct map_groups *parent, enum map_type type); 134 struct map_groups *parent, enum map_type type);
135size_t map_groups__fprintf(struct map_groups *self, int verbose, FILE *fp); 135size_t map_groups__fprintf(struct map_groups *mg, int verbose, FILE *fp);
136size_t map_groups__fprintf_maps(struct map_groups *self, int verbose, FILE *fp); 136size_t map_groups__fprintf_maps(struct map_groups *mg, int verbose, FILE *fp);
137 137
138typedef void (*machine__process_t)(struct machine *self, void *data); 138typedef void (*machine__process_t)(struct machine *self, void *data);
139 139
@@ -162,29 +162,29 @@ static inline bool machine__is_host(struct machine *self)
162 return self ? self->pid == HOST_KERNEL_ID : false; 162 return self ? self->pid == HOST_KERNEL_ID : false;
163} 163}
164 164
165static inline void map_groups__insert(struct map_groups *self, struct map *map) 165static inline void map_groups__insert(struct map_groups *mg, struct map *map)
166{ 166{
167 maps__insert(&self->maps[map->type], map); 167 maps__insert(&mg->maps[map->type], map);
168 map->groups = self; 168 map->groups = mg;
169} 169}
170 170
171static inline void map_groups__remove(struct map_groups *self, struct map *map) 171static inline void map_groups__remove(struct map_groups *mg, struct map *map)
172{ 172{
173 maps__remove(&self->maps[map->type], map); 173 maps__remove(&mg->maps[map->type], map);
174} 174}
175 175
176static inline struct map *map_groups__find(struct map_groups *self, 176static inline struct map *map_groups__find(struct map_groups *mg,
177 enum map_type type, u64 addr) 177 enum map_type type, u64 addr)
178{ 178{
179 return maps__find(&self->maps[type], addr); 179 return maps__find(&mg->maps[type], addr);
180} 180}
181 181
182struct symbol *map_groups__find_symbol(struct map_groups *self, 182struct symbol *map_groups__find_symbol(struct map_groups *mg,
183 enum map_type type, u64 addr, 183 enum map_type type, u64 addr,
184 struct map **mapp, 184 struct map **mapp,
185 symbol_filter_t filter); 185 symbol_filter_t filter);
186 186
187struct symbol *map_groups__find_symbol_by_name(struct map_groups *self, 187struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,
188 enum map_type type, 188 enum map_type type,
189 const char *name, 189 const char *name,
190 struct map **mapp, 190 struct map **mapp,
@@ -208,11 +208,11 @@ struct symbol *machine__find_kernel_function(struct machine *self, u64 addr,
208} 208}
209 209
210static inline 210static inline
211struct symbol *map_groups__find_function_by_name(struct map_groups *self, 211struct symbol *map_groups__find_function_by_name(struct map_groups *mg,
212 const char *name, struct map **mapp, 212 const char *name, struct map **mapp,
213 symbol_filter_t filter) 213 symbol_filter_t filter)
214{ 214{
215 return map_groups__find_symbol_by_name(self, MAP__FUNCTION, name, mapp, filter); 215 return map_groups__find_symbol_by_name(mg, MAP__FUNCTION, name, mapp, filter);
216} 216}
217 217
218static inline 218static inline
@@ -225,13 +225,13 @@ struct symbol *machine__find_kernel_function_by_name(struct machine *self,
225 filter); 225 filter);
226} 226}
227 227
228int map_groups__fixup_overlappings(struct map_groups *self, struct map *map, 228int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map,
229 int verbose, FILE *fp); 229 int verbose, FILE *fp);
230 230
231struct map *map_groups__find_by_name(struct map_groups *self, 231struct map *map_groups__find_by_name(struct map_groups *mg,
232 enum map_type type, const char *name); 232 enum map_type type, const char *name);
233struct map *machine__new_module(struct machine *self, u64 start, const char *filename); 233struct map *machine__new_module(struct machine *self, u64 start, const char *filename);
234 234
235void map_groups__flush(struct map_groups *self); 235void map_groups__flush(struct map_groups *mg);
236 236
237#endif /* __PERF_MAP_H */ 237#endif /* __PERF_MAP_H */