>From d08747060ba5af3507831e0265044be17636869d Mon Sep 17 00:00:00 2001 From: David Ahern Date: Wed, 30 Oct 2013 10:26:45 -0600 Subject: [PATCH 2/2] perf list: Add usage - v2 Currently perf list is not very helpful if you forget the syntax: $ perf list -h List of pre-defined events (to be used in -e): After: $ perf list -h usage: perf list [hw|sw|cache|tracepoint|pmu|event_glob] v2: reset index counter based on option parsing. Signed-off-by: David Ahern Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian --- tools/perf/builtin-list.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c index 45000e7d4398..011195e38f21 100644 --- a/tools/perf/builtin-list.c +++ b/tools/perf/builtin-list.c @@ -14,20 +14,31 @@ #include "util/parse-events.h" #include "util/cache.h" #include "util/pmu.h" +#include "util/parse-options.h" int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused) { int i; + const struct option list_options[] = { + OPT_END() + }; + const char * const list_usage[] = { + "perf list [hw|sw|cache|tracepoint|pmu|event_glob]", + NULL + }; + + argc = parse_options(argc, argv, list_options, list_usage, + PARSE_OPT_STOP_AT_NON_OPTION); setup_pager(); - if (argc == 1) { + if (argc == 0) { print_events(NULL, false); return 0; } - for (i = 1; i < argc; ++i) { - if (i > 2) + for (i = 0; i < argc; ++i) { + if (i) putchar('\n'); if (strncmp(argv[i], "tracepoint", 10) == 0) print_tracepoint_events(NULL, NULL, false); -- 1.8.3.4 (Apple Git-47)