diff options
Diffstat (limited to 'tools/perf/util/annotate.c')
| -rw-r--r-- | tools/perf/util/annotate.c | 49 | 
1 files changed, 27 insertions, 22 deletions
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 163536720149..1748f528b6e9 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -9,6 +9,7 @@  #include <errno.h>  #include <inttypes.h>  #include <libgen.h> +#include <stdlib.h>  #include <bpf/bpf.h>  #include <bpf/btf.h>  #include <bpf/libbpf.h> @@ -19,9 +20,12 @@  #include "build-id.h"  #include "color.h"  #include "config.h" -#include "cache.h" +#include "dso.h" +#include "env.h"  #include "map.h" +#include "map_groups.h"  #include "symbol.h" +#include "srcline.h"  #include "units.h"  #include "debug.h"  #include "annotate.h" @@ -37,6 +41,7 @@  #include <linux/kernel.h>  #include <linux/string.h>  #include <bpf/libbpf.h> +#include <subcmd/parse-options.h>  /* FIXME: For the HE_COLORSET */  #include "ui/browser.h" @@ -929,14 +934,14 @@ alloc_histograms:  }  static int symbol__inc_addr_samples(struct symbol *sym, struct map *map, -				    struct perf_evsel *evsel, u64 addr, +				    struct evsel *evsel, u64 addr,  				    struct perf_sample *sample)  {  	struct annotated_source *src;  	if (sym == NULL)  		return 0; -	src = symbol__hists(sym, evsel->evlist->nr_entries); +	src = symbol__hists(sym, evsel->evlist->core.nr_entries);  	return (src) ?  __symbol__inc_addr_samples(sym, map, src, evsel->idx,  						   addr, sample) : 0;  } @@ -1080,13 +1085,13 @@ void annotation__compute_ipc(struct annotation *notes, size_t size)  }  int addr_map_symbol__inc_samples(struct addr_map_symbol *ams, struct perf_sample *sample, -				 struct perf_evsel *evsel) +				 struct evsel *evsel)  {  	return symbol__inc_addr_samples(ams->sym, ams->map, evsel, ams->al_addr, sample);  }  int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample *sample, -				 struct perf_evsel *evsel, u64 ip) +				 struct evsel *evsel, u64 ip)  {  	return symbol__inc_addr_samples(he->ms.sym, he->ms.map, evsel, ip, sample);  } @@ -1134,7 +1139,7 @@ struct annotate_args {  	size_t			 privsize;  	struct arch		*arch;  	struct map_symbol	 ms; -	struct perf_evsel	*evsel; +	struct evsel	*evsel;  	struct annotation_options *options;  	s64			 offset;  	char			*line; @@ -1165,12 +1170,12 @@ static struct annotation_line *  annotation_line__new(struct annotate_args *args, size_t privsize)  {  	struct annotation_line *al; -	struct perf_evsel *evsel = args->evsel; +	struct evsel *evsel = args->evsel;  	size_t size = privsize + sizeof(*al);  	int nr = 1;  	if (perf_evsel__is_group_event(evsel)) -		nr = evsel->nr_members; +		nr = evsel->core.nr_members;  	size += sizeof(al->data[0]) * nr; @@ -1359,7 +1364,7 @@ static int disasm_line__print(struct disasm_line *dl, u64 start, int addr_fmt_wi  static int  annotation_line__print(struct annotation_line *al, struct symbol *sym, u64 start, -		       struct perf_evsel *evsel, u64 len, int min_pcnt, int printed, +		       struct evsel *evsel, u64 len, int min_pcnt, int printed,  		       int max_lines, struct annotation_line *queue, int addr_fmt_width,  		       int percent_type)  { @@ -1448,7 +1453,7 @@ annotation_line__print(struct annotation_line *al, struct symbol *sym, u64 start  			return -1;  		if (perf_evsel__is_group_event(evsel)) -			width *= evsel->nr_members; +			width *= evsel->core.nr_members;  		if (!*al->line)  			printf(" %*s:\n", width, " "); @@ -2011,10 +2016,10 @@ static void calc_percent(struct sym_hist *sym_hist,  }  static void annotation__calc_percent(struct annotation *notes, -				     struct perf_evsel *leader, s64 len) +				     struct evsel *leader, s64 len)  {  	struct annotation_line *al, *next; -	struct perf_evsel *evsel; +	struct evsel *evsel;  	list_for_each_entry(al, ¬es->src->source, node) {  		s64 end; @@ -2041,7 +2046,7 @@ static void annotation__calc_percent(struct annotation *notes,  	}  } -void symbol__calc_percent(struct symbol *sym, struct perf_evsel *evsel) +void symbol__calc_percent(struct symbol *sym, struct evsel *evsel)  {  	struct annotation *notes = symbol__annotation(sym); @@ -2049,7 +2054,7 @@ void symbol__calc_percent(struct symbol *sym, struct perf_evsel *evsel)  }  int symbol__annotate(struct symbol *sym, struct map *map, -		     struct perf_evsel *evsel, size_t privsize, +		     struct evsel *evsel, size_t privsize,  		     struct annotation_options *options,  		     struct arch **parch)  { @@ -2214,7 +2219,7 @@ static void print_summary(struct rb_root *root, const char *filename)  	}  } -static void symbol__annotate_hits(struct symbol *sym, struct perf_evsel *evsel) +static void symbol__annotate_hits(struct symbol *sym, struct evsel *evsel)  {  	struct annotation *notes = symbol__annotation(sym);  	struct sym_hist *h = annotation__histogram(notes, evsel->idx); @@ -2241,7 +2246,7 @@ static int annotated_source__addr_fmt_width(struct list_head *lines, u64 start)  }  int symbol__annotate_printf(struct symbol *sym, struct map *map, -			    struct perf_evsel *evsel, +			    struct evsel *evsel,  			    struct annotation_options *opts)  {  	struct dso *dso = map->dso; @@ -2272,7 +2277,7 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map,  	len = symbol__size(sym);  	if (perf_evsel__is_group_event(evsel)) { -		width *= evsel->nr_members; +		width *= evsel->core.nr_members;  		perf_evsel__group_desc(evsel, buf, sizeof(buf));  		evsel_name = buf;  	} @@ -2405,7 +2410,7 @@ static int symbol__annotate_fprintf2(struct symbol *sym, FILE *fp,  	return 0;  } -int map_symbol__annotation_dump(struct map_symbol *ms, struct perf_evsel *evsel, +int map_symbol__annotation_dump(struct map_symbol *ms, struct evsel *evsel,  				struct annotation_options *opts)  {  	const char *ev_name = perf_evsel__name(evsel); @@ -2657,7 +2662,7 @@ static void symbol__calc_lines(struct symbol *sym, struct map *map,  }  int symbol__tty_annotate2(struct symbol *sym, struct map *map, -			  struct perf_evsel *evsel, +			  struct evsel *evsel,  			  struct annotation_options *opts)  {  	struct dso *dso = map->dso; @@ -2685,7 +2690,7 @@ int symbol__tty_annotate2(struct symbol *sym, struct map *map,  }  int symbol__tty_annotate(struct symbol *sym, struct map *map, -			 struct perf_evsel *evsel, +			 struct evsel *evsel,  			 struct annotation_options *opts)  {  	struct dso *dso = map->dso; @@ -2956,7 +2961,7 @@ void annotation_line__write(struct annotation_line *al, struct annotation *notes  				 wops->write_graph);  } -int symbol__annotate2(struct symbol *sym, struct map *map, struct perf_evsel *evsel, +int symbol__annotate2(struct symbol *sym, struct map *map, struct evsel *evsel,  		      struct annotation_options *options, struct arch **parch)  {  	struct annotation *notes = symbol__annotation(sym); @@ -2968,7 +2973,7 @@ int symbol__annotate2(struct symbol *sym, struct map *map, struct perf_evsel *ev  		return -1;  	if (perf_evsel__is_group_event(evsel)) -		nr_pcnt = evsel->nr_members; +		nr_pcnt = evsel->core.nr_members;  	err = symbol__annotate(sym, map, evsel, 0, options, parch);  	if (err)  |