Commit 2fbaa390 authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo

perf hists: Separate sort fields parsing into setup_sort_list function

Separating sort fields parsing into setup_sort_list function, so it's
separated from sort_order string setup and could be reused later in
following patches.
Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1453109064-1026-13-git-send-email-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 564132f3
...@@ -2241,6 +2241,26 @@ static int sort_dimension__add(const char *tok, ...@@ -2241,6 +2241,26 @@ static int sort_dimension__add(const char *tok,
return -ESRCH; return -ESRCH;
} }
static int setup_sort_list(char *str, struct perf_evlist *evlist)
{
char *tmp, *tok;
int ret = 0;
for (tok = strtok_r(str, ", ", &tmp);
tok; tok = strtok_r(NULL, ", ", &tmp)) {
ret = sort_dimension__add(tok, evlist);
if (ret == -EINVAL) {
error("Invalid --sort key: `%s'", tok);
break;
} else if (ret == -ESRCH) {
error("Unknown --sort key: `%s'", tok);
break;
}
}
return ret;
}
static const char *get_default_sort_order(struct perf_evlist *evlist) static const char *get_default_sort_order(struct perf_evlist *evlist)
{ {
const char *default_sort_orders[] = { const char *default_sort_orders[] = {
...@@ -2335,7 +2355,7 @@ static char *setup_overhead(char *keys) ...@@ -2335,7 +2355,7 @@ static char *setup_overhead(char *keys)
static int __setup_sorting(struct perf_evlist *evlist) static int __setup_sorting(struct perf_evlist *evlist)
{ {
char *tmp, *tok, *str; char *str;
const char *sort_keys; const char *sort_keys;
int ret = 0; int ret = 0;
...@@ -2373,17 +2393,7 @@ static int __setup_sorting(struct perf_evlist *evlist) ...@@ -2373,17 +2393,7 @@ static int __setup_sorting(struct perf_evlist *evlist)
} }
} }
for (tok = strtok_r(str, ", ", &tmp); ret = setup_sort_list(str, evlist);
tok; tok = strtok_r(NULL, ", ", &tmp)) {
ret = sort_dimension__add(tok, evlist);
if (ret == -EINVAL) {
error("Invalid --sort key: `%s'", tok);
break;
} else if (ret == -ESRCH) {
error("Unknown --sort key: `%s'", tok);
break;
}
}
free(str); free(str);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment