diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2009-12-14 17:09:29 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-12-15 02:50:28 -0500 |
commit | c8829c7a31c7e0156b230fa8d5a14be9881d7677 (patch) | |
tree | c8649f461c5192613de3fe47b728e47a8b5c9e2c /tools/perf | |
parent | f823e441ab4dfaeaf17832fa1931e0dc0fde304d (diff) |
perf util: Remove setup_sorting dups
And it is also needed by 'perf diff'.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <1260828571-3613-1-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/builtin-annotate.c | 17 | ||||
-rw-r--r-- | tools/perf/builtin-report.c | 17 | ||||
-rw-r--r-- | tools/perf/util/sort.c | 15 | ||||
-rw-r--r-- | tools/perf/util/sort.h | 2 |
4 files changed, 19 insertions, 32 deletions
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index fa833f50763e..2e2855a685c6 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c | |||
@@ -521,21 +521,6 @@ static const struct option options[] = { | |||
521 | OPT_END() | 521 | OPT_END() |
522 | }; | 522 | }; |
523 | 523 | ||
524 | static void setup_sorting(void) | ||
525 | { | ||
526 | char *tmp, *tok, *str = strdup(sort_order); | ||
527 | |||
528 | for (tok = strtok_r(str, ", ", &tmp); | ||
529 | tok; tok = strtok_r(NULL, ", ", &tmp)) { | ||
530 | if (sort_dimension__add(tok) < 0) { | ||
531 | error("Unknown --sort key: `%s'", tok); | ||
532 | usage_with_options(annotate_usage, options); | ||
533 | } | ||
534 | } | ||
535 | |||
536 | free(str); | ||
537 | } | ||
538 | |||
539 | int cmd_annotate(int argc, const char **argv, const char *prefix __used) | 524 | int cmd_annotate(int argc, const char **argv, const char *prefix __used) |
540 | { | 525 | { |
541 | if (symbol__init(&symbol_conf) < 0) | 526 | if (symbol__init(&symbol_conf) < 0) |
@@ -543,7 +528,7 @@ int cmd_annotate(int argc, const char **argv, const char *prefix __used) | |||
543 | 528 | ||
544 | argc = parse_options(argc, argv, options, annotate_usage, 0); | 529 | argc = parse_options(argc, argv, options, annotate_usage, 0); |
545 | 530 | ||
546 | setup_sorting(); | 531 | setup_sorting(annotate_usage, options); |
547 | 532 | ||
548 | if (argc) { | 533 | if (argc) { |
549 | /* | 534 | /* |
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index d12ea4ab0d21..beff7c090d2b 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
@@ -843,21 +843,6 @@ static const struct option options[] = { | |||
843 | OPT_END() | 843 | OPT_END() |
844 | }; | 844 | }; |
845 | 845 | ||
846 | static void setup_sorting(void) | ||
847 | { | ||
848 | char *tmp, *tok, *str = strdup(sort_order); | ||
849 | |||
850 | for (tok = strtok_r(str, ", ", &tmp); | ||
851 | tok; tok = strtok_r(NULL, ", ", &tmp)) { | ||
852 | if (sort_dimension__add(tok) < 0) { | ||
853 | error("Unknown --sort key: `%s'", tok); | ||
854 | usage_with_options(report_usage, options); | ||
855 | } | ||
856 | } | ||
857 | |||
858 | free(str); | ||
859 | } | ||
860 | |||
861 | static void setup_list(struct strlist **list, const char *list_str, | 846 | static void setup_list(struct strlist **list, const char *list_str, |
862 | struct sort_entry *se, const char *list_name, | 847 | struct sort_entry *se, const char *list_name, |
863 | FILE *fp) | 848 | FILE *fp) |
@@ -884,7 +869,7 @@ int cmd_report(int argc, const char **argv, const char *prefix __used) | |||
884 | 869 | ||
885 | argc = parse_options(argc, argv, options, report_usage, 0); | 870 | argc = parse_options(argc, argv, options, report_usage, 0); |
886 | 871 | ||
887 | setup_sorting(); | 872 | setup_sorting(report_usage, options); |
888 | 873 | ||
889 | if (parent_pattern != default_parent_pattern) { | 874 | if (parent_pattern != default_parent_pattern) { |
890 | sort_dimension__add("parent"); | 875 | sort_dimension__add("parent"); |
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index b490354d1b23..cff1c316fa91 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c | |||
@@ -288,3 +288,18 @@ int sort_dimension__add(const char *tok) | |||
288 | 288 | ||
289 | return -ESRCH; | 289 | return -ESRCH; |
290 | } | 290 | } |
291 | |||
292 | void setup_sorting(const char * const usagestr[], const struct option *opts) | ||
293 | { | ||
294 | char *tmp, *tok, *str = strdup(sort_order); | ||
295 | |||
296 | for (tok = strtok_r(str, ", ", &tmp); | ||
297 | tok; tok = strtok_r(NULL, ", ", &tmp)) { | ||
298 | if (sort_dimension__add(tok) < 0) { | ||
299 | error("Unknown --sort key: `%s'", tok); | ||
300 | usage_with_options(usagestr, opts); | ||
301 | } | ||
302 | } | ||
303 | |||
304 | free(str); | ||
305 | } | ||
diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h index 333e664ff45f..cb6151c026f2 100644 --- a/tools/perf/util/sort.h +++ b/tools/perf/util/sort.h | |||
@@ -81,6 +81,8 @@ struct sort_entry { | |||
81 | extern struct sort_entry sort_thread; | 81 | extern struct sort_entry sort_thread; |
82 | extern struct list_head hist_entry__sort_list; | 82 | extern struct list_head hist_entry__sort_list; |
83 | 83 | ||
84 | void setup_sorting(const char * const usagestr[], const struct option *opts); | ||
85 | |||
84 | extern int repsep_fprintf(FILE *fp, const char *fmt, ...); | 86 | extern int repsep_fprintf(FILE *fp, const char *fmt, ...); |
85 | extern size_t sort__thread_print(FILE *, struct hist_entry *, unsigned int); | 87 | extern size_t sort__thread_print(FILE *, struct hist_entry *, unsigned int); |
86 | extern size_t sort__comm_print(FILE *, struct hist_entry *, unsigned int); | 88 | extern size_t sort__comm_print(FILE *, struct hist_entry *, unsigned int); |