Messages in this thread Patch in this message | | | From | Dongsheng Yang <> | Subject | [PATCH 2/8] perf tools: Make the print_pmu_events funtion to return unsigned int. | Date | Mon, 30 Dec 2013 10:26:37 -0500 |
| |
Sometimes we need to know how many events have been printed in print_pmu_events.
This patch make this function to return the number of events we have printed.
Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com> --- tools/perf/util/pmu.c | 12 +++++++----- tools/perf/util/pmu.h | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index 0934d64..331dc2c 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -711,12 +711,12 @@ static int cmp_string(const void *a, const void *b) return strcmp(*as, *bs); } -void print_pmu_events(const char *event_glob, bool name_only) +unsigned int print_pmu_events(const char *event_glob, bool name_only) { struct perf_pmu *pmu; struct perf_pmu_alias *alias; char buf[1024]; - int printed = 0; + unsigned int count = 0; int len, j; char **aliases; @@ -727,7 +727,7 @@ void print_pmu_events(const char *event_glob, bool name_only) len++; aliases = malloc(sizeof(char *) * len); if (!aliases) - return; + return count; pmu = NULL; j = 0; while ((pmu = perf_pmu__scan(pmu)) != NULL) @@ -752,15 +752,17 @@ void print_pmu_events(const char *event_glob, bool name_only) for (j = 0; j < len; j++) { if (name_only) { printf("%s ", aliases[j]); + count++; continue; } printf(" %-50s [Kernel PMU event]\n", aliases[j]); zfree(&aliases[j]); - printed++; + count++; } - if (printed) + if (count) printf("\n"); free(aliases); + return count; } bool pmu_have_event(const char *pname, const char *name) diff --git a/tools/perf/util/pmu.h b/tools/perf/util/pmu.h index 9183380..2987fe2 100644 --- a/tools/perf/util/pmu.h +++ b/tools/perf/util/pmu.h @@ -42,7 +42,7 @@ int perf_pmu__format_parse(char *dir, struct list_head *head); struct perf_pmu *perf_pmu__scan(struct perf_pmu *pmu); -void print_pmu_events(const char *event_glob, bool name_only); +unsigned int print_pmu_events(const char *event_glob, bool name_only); bool pmu_have_event(const char *pname, const char *name); int perf_pmu__test(void); -- 1.8.2.1
| |