aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/parse-events.c
diff options
context:
space:
mode:
authorWang Nan <wangnan0@huawei.com>2016-02-19 06:43:59 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-02-19 17:12:50 -0500
commite814fddde18fec43fa41a27ae94c09b54772697e (patch)
tree556249c76e7fc4e0ee0f6dd9214c15ab05d519c6 /tools/perf/util/parse-events.c
parent1669e509ea25e4e3e871d913d21b1cac4a96d1e8 (diff)
perf tools: Rename and move pmu_event_name to get_config_name
Following commits will make more events obey /name=newname/ options. This patch makes pmu_event_name() a generic helper. Makes new get_config_name() accept NULL input to make life easier. Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Brendan Gregg <brendan.d.gregg@gmail.com> Cc: Cody P Schafer <dev@codyps.com> Cc: He Kuang <hekuang@huawei.com> Cc: Jeremie Galarneau <jeremie.galarneau@efficios.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kirill Smelkov <kirr@nexedi.com> Cc: Li Zefan <lizefan@huawei.com> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Zefan Li <lizefan@huawei.com> Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1455882283-79592-12-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/parse-events.c')
-rw-r--r--tools/perf/util/parse-events.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index eb5df43ec68f..3243e95eb1c7 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -279,7 +279,24 @@ const char *event_type(int type)
279 return "unknown"; 279 return "unknown";
280} 280}
281 281
282static int parse_events__is_name_term(struct parse_events_term *term)
283{
284 return term->type_term == PARSE_EVENTS__TERM_TYPE_NAME;
285}
282 286
287static char *get_config_name(struct list_head *head_terms)
288{
289 struct parse_events_term *term;
290
291 if (!head_terms)
292 return NULL;
293
294 list_for_each_entry(term, head_terms, list)
295 if (parse_events__is_name_term(term))
296 return term->val.str;
297
298 return NULL;
299}
283 300
284static struct perf_evsel * 301static struct perf_evsel *
285__add_event(struct list_head *list, int *idx, 302__add_event(struct list_head *list, int *idx,
@@ -1029,22 +1046,6 @@ int parse_events_add_numeric(struct parse_events_evlist *data,
1029 return add_event(list, &data->idx, &attr, NULL, &config_terms); 1046 return add_event(list, &data->idx, &attr, NULL, &config_terms);
1030} 1047}
1031 1048
1032static int parse_events__is_name_term(struct parse_events_term *term)
1033{
1034 return term->type_term == PARSE_EVENTS__TERM_TYPE_NAME;
1035}
1036
1037static char *pmu_event_name(struct list_head *head_terms)
1038{
1039 struct parse_events_term *term;
1040
1041 list_for_each_entry(term, head_terms, list)
1042 if (parse_events__is_name_term(term))
1043 return term->val.str;
1044
1045 return NULL;
1046}
1047
1048int parse_events_add_pmu(struct parse_events_evlist *data, 1049int parse_events_add_pmu(struct parse_events_evlist *data,
1049 struct list_head *list, char *name, 1050 struct list_head *list, char *name,
1050 struct list_head *head_config) 1051 struct list_head *head_config)
@@ -1089,7 +1090,7 @@ int parse_events_add_pmu(struct parse_events_evlist *data,
1089 return -EINVAL; 1090 return -EINVAL;
1090 1091
1091 evsel = __add_event(list, &data->idx, &attr, 1092 evsel = __add_event(list, &data->idx, &attr,
1092 pmu_event_name(head_config), pmu->cpus, 1093 get_config_name(head_config), pmu->cpus,
1093 &config_terms); 1094 &config_terms);
1094 if (evsel) { 1095 if (evsel) {
1095 evsel->unit = info.unit; 1096 evsel->unit = info.unit;