mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-15 08:44:14 +08:00
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: Jiri 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.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
564132f311
commit
2fbaa39079
@ -2241,6 +2241,26 @@ static int sort_dimension__add(const char *tok,
|
||||
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)
|
||||
{
|
||||
const char *default_sort_orders[] = {
|
||||
@ -2335,7 +2355,7 @@ static char *setup_overhead(char *keys)
|
||||
|
||||
static int __setup_sorting(struct perf_evlist *evlist)
|
||||
{
|
||||
char *tmp, *tok, *str;
|
||||
char *str;
|
||||
const char *sort_keys;
|
||||
int ret = 0;
|
||||
|
||||
@ -2373,17 +2393,7 @@ static int __setup_sorting(struct perf_evlist *evlist)
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
ret = setup_sort_list(str, evlist);
|
||||
|
||||
free(str);
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user