perf trace beauty: Export strarray for use in per-object beautifiers
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 0ae79636e32889cced620865debd3ba5bfd36daa Gitweb: http://git.kernel.org/tip/0ae79636e32889cced620865debd3ba5bfd36daa Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Mon, 17 Jul 2017 10:31:42 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 18 Jul 2017 23:14:23 -0300
perf trace beauty: Export strarray for use in per-object beautifiers
Like will be done with fcntl(fd, F_GETLEASE, F_RDLCK|F_WRLCK|F_UNLCK)
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Wang Nan <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/builtin-trace.c | 27 +++++++-------------------- tools/perf/trace/beauty/beauty.h | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+), 20 deletions(-)
tools/perf/builtin-trace.c +7 -20
@@ -283,34 +283,21 @@ out_delete: ({struct syscall_tp *fields = evsel->priv; \ fields->name.pointer(&fields->name, sample); }) -struct strarray { -int offset; -int nr_entries; -const char **entries; -}; +size_t strarray__scnprintf (struct strarray *sa,char *bf,size_t size,const char *intfmt,int val) +{ +int idx = val - sa->offset; -#define DEFINE_STRARRAY (array) struct strarray strarray__##array = { \ - .nr_entries = ARRAY_SIZE(array), \ - .entries = array, \ -} +if (idx <0 || idx >= sa->nr_entries) +return scnprintf (bf, size, intfmt, val); -#define DEFINE_STRARRAY_OFFSET (array, off) struct strarray strarray__##array = { \ - .offset = off, \ - .nr_entries = ARRAY_SIZE(array), \ - .entries = array, \ +return scnprintf (bf, size,"%s" , sa->entries[idx]); }static size_t __syscall_arg__scnprintf_strarray (char *bf,size_t size,const char *intfmt,struct syscall_arg *arg) { -struct strarray *sa = arg->parm; -int idx = arg->val - sa->offset; - -if (idx <0 || idx >= sa->nr_entries) -return scnprintf (bf, size, intfmt, arg->val); - -return scnprintf (bf, size,"%s" , sa->entries[idx]); +return strarray__scnprintf (arg->parm, bf, size, intfmt, arg->val); } static size_t syscall_arg__scnprintf_strarray(char *bf, size_t size,
tools/perf/trace/beauty/beauty.h +20 -0
@@ -1,8 +1,28 @@#ifndef _PERF_TRACE_BEAUTY_H#define _PERF_TRACE_BEAUTY_H +#include <linux/kernel.h> #include <linux/types.h> +struct strarray { +int offset; +int nr_entries; +const char **entries; +}; + +#define DEFINE_STRARRAY (array) struct strarray strarray__##array = { \ + .nr_entries = ARRAY_SIZE(array), \ + .entries = array, \ +} + +#define DEFINE_STRARRAY_OFFSET (array, off) struct strarray strarray__##array = { \ + .offset = off, \ + .nr_entries = ARRAY_SIZE(array), \ + .entries = array, \ +} + +size_t strarray__scnprintf (struct strarray *sa,char *bf,size_t size,const char *intfmt,int val); +struct trace ;struct thread ;