perf beauty: Introduce strarray__scnprintf_flags()
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 579e5ff629b17744f62473f314768de8b6f1e66c Gitweb: https://git.kernel.org/tip/579e5ff629b17744f62473f314768de8b6f1e66c Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Thu, 25 Oct 2018 14:21:31 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 30 Oct 2018 11:46:23 -0300
perf beauty: Introduce strarray__scnprintf_flags()
Generalizing pkey_alloc__scnprintf_access_rights(), so that we can use it with other flags-like arguments, such as mount's mountflags argument.
Cc Adrian Hunter <[email protected]>
Cc Benjamin Peterson <[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/trace/beauty/beauty.h | 1 + tools/perf/trace/beauty/pkey_alloc.c | 27 ++++++++++++++++----------- 2 files changed, 17 insertions(+), 11 deletions(-)
tools/perf/trace/beauty/beauty.h +1 -0
@@ -24,6 +24,7 @@ struct strarray { }size_t strarray__scnprintf (struct strarray *sa,char *bf,size_t size,const char *intfmt,int val); +size_t strarray__scnprintf_flags (struct strarray *sa,char *bf,size_t size,unsigned long flags);struct trace ;struct thread ;
tools/perf/trace/beauty/pkey_alloc.c +16 -11
@@ -9,31 +9,28 @@#include <linux/kernel.h> #include <linux/log2.h> -static size_t pkey_alloc__scnprintf_access_rights (int access_rights,char *bf,size_t size) +size_t strarray__scnprintf_flags (struct strarray *sa,char *bf,size_t size,unsigned long flags) {int i, printed =0 ; -#include "trace/beauty/generated/pkey_alloc_access_rights_array.c" -static DEFINE_STRARRAY (pkey_alloc_access_rights); - -if (access_rights ==0 ) { -const char *s = strarray__pkey_alloc_access_rights.entries[0 ]; +if (flags ==0 ) { +const char *s = sa->entries[0 ];if (s)return scnprintf (bf, size,"%s" , s);return scnprintf (bf, size,"%d" ,0 ); } -for (i =1 ; i < strarray__pkey_alloc_access_rights.nr_entries; ++i) { -int bit =1 << (i -1 ); +for (i =1 ; i < sa->nr_entries; ++i) { +unsigned long bit =1UL << (i -1 ); -if (!(access_rights & bit)) +if (!(flags & bit))continue ;if (printed !=0 ) printed +=scnprintf (bf + printed, size - printed,"|" ); -if (strarray__pkey_alloc_access_rights.entries[i] !=NULL ) - printed +=scnprintf (bf + printed, size - printed,"%s" , strarray__pkey_alloc_access_rights.entries[i]); +if (sa->entries[i] !=NULL ) + printed +=scnprintf (bf + printed, size - printed,"%s" , sa->entries[i]);else printed +=scnprintf (bf + printed, size - printed,"0x%#" , bit); }
@@ -41,6 +38,14 @@ static size_t pkey_alloc__scnprintf_access_rights(int access_rights, char *bf, sreturn printed; } +static size_t pkey_alloc__scnprintf_access_rights (int access_rights,char *bf,size_t size) +{ +#include "trace/beauty/generated/pkey_alloc_access_rights_array.c" +static DEFINE_STRARRAY (pkey_alloc_access_rights); + +return strarray__scnprintf_flags (&strarray__pkey_alloc_access_rights, bf, size, access_rights); +} +size_t syscall_arg__scnprintf_pkey_alloc_access_rights (char *bf,size_t size,struct syscall_arg *arg) {unsigned long cmd = arg->val;