mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-08-21 16:31:14 +02:00

It was using the first variation on producing a string representation for a binary flag, one that used the system's stat.h and preprocessor tricks that had to be updated everytime a new flag was introduced. Use the more recent scrape script + strarray + strarray__scnprintf_flags() combo. $ tools/perf/trace/beauty/statx_mask.sh static const char *statx_mask[] = { [ilog2(0x00000001) + 1] = "TYPE", [ilog2(0x00000002) + 1] = "MODE", [ilog2(0x00000004) + 1] = "NLINK", [ilog2(0x00000008) + 1] = "UID", [ilog2(0x00000010) + 1] = "GID", [ilog2(0x00000020) + 1] = "ATIME", [ilog2(0x00000040) + 1] = "MTIME", [ilog2(0x00000080) + 1] = "CTIME", [ilog2(0x00000100) + 1] = "INO", [ilog2(0x00000200) + 1] = "SIZE", [ilog2(0x00000400) + 1] = "BLOCKS", [ilog2(0x00000800) + 1] = "BTIME", [ilog2(0x00001000) + 1] = "MNT_ID", [ilog2(0x00002000) + 1] = "DIOALIGN", [ilog2(0x00004000) + 1] = "MNT_ID_UNIQUE", }; $ Now we need a copy of uapi/linux/stat.h from tools/include/ in the scrape only directory tools/perf/trace/beauty/include. Reviewed-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lore.kernel.org/lkml/20240320193115.811899-3-acme@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
26 lines
744 B
C
26 lines
744 B
C
// SPDX-License-Identifier: LGPL-2.1
|
|
/*
|
|
* trace/beauty/statx.c
|
|
*
|
|
* Copyright (C) 2017, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
*/
|
|
|
|
#include "trace/beauty/beauty.h"
|
|
#include <sys/types.h>
|
|
#include <linux/log2.h>
|
|
|
|
static size_t statx__scnprintf_mask(unsigned long mask, char *bf, size_t size, bool show_prefix)
|
|
{
|
|
#include "trace/beauty/generated/statx_mask_array.c"
|
|
static DEFINE_STRARRAY(statx_mask, "STATX_");
|
|
return strarray__scnprintf_flags(&strarray__statx_mask, bf, size, show_prefix, mask);
|
|
}
|
|
|
|
size_t syscall_arg__scnprintf_statx_mask(char *bf, size_t size, struct syscall_arg *arg)
|
|
{
|
|
bool show_prefix = arg->show_string_prefix;
|
|
int mask = arg->val;
|
|
|
|
return statx__scnprintf_mask(mask, bf, size, show_prefix);
|
|
}
|