summaryrefslogtreecommitdiffstats
path: root/tools/perf/trace/beauty/rename_flags.sh
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo2018-12-11 14:16:42 +0100
committerArnaldo Carvalho de Melo2018-12-18 16:23:55 +0100
commitbdc2a9d64a4c4c77c63ce2561bd644d233fcb1fc (patch)
tree32517d104a5787e559a39b9597bf2dfb70c53f14 /tools/perf/trace/beauty/rename_flags.sh
parentperf trace beauty: Beautify renameat2's fd arg wrt AT_FDCWD (diff)
downloadkernel-qcow2-linux-bdc2a9d64a4c4c77c63ce2561bd644d233fcb1fc.tar.gz
kernel-qcow2-linux-bdc2a9d64a4c4c77c63ce2561bd644d233fcb1fc.tar.xz
kernel-qcow2-linux-bdc2a9d64a4c4c77c63ce2561bd644d233fcb1fc.zip
perf beauty: Add a string table generator for renameat2's flags constants
Using the already copied tools/include/uapi/linux/fs.h file: $ tools/perf/trace/beauty/rename_flags.sh static const char *rename_flags[] = { [0 + 1] = "NOREPLACE", [1 + 1] = "EXCHANGE", [2 + 1] = "WHITEOUT", }; $ Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lkml.kernel.org/n/tip-ta2jbh03spkymp4sbdh489g8@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/trace/beauty/rename_flags.sh')
-rwxr-xr-xtools/perf/trace/beauty/rename_flags.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/perf/trace/beauty/rename_flags.sh b/tools/perf/trace/beauty/rename_flags.sh
new file mode 100755
index 000000000000..54c87c782ab2
--- /dev/null
+++ b/tools/perf/trace/beauty/rename_flags.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+# Copyright (C) 2018, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
+# SPDX-License-Identifier: LGPL-2.1
+
+[ $# -eq 1 ] && header_dir=$1 || header_dir=tools/include/uapi/linux/
+
+fs_header=${header_dir}/fs.h
+
+printf "static const char *rename_flags[] = {\n"
+regex='^[[:space:]]*#[[:space:]]*define[[:space:]]+RENAME_([[:alnum:]_]+)[[:space:]]+\(1[[:space:]]*<<[[:space:]]*([[:xdigit:]]+)[[:space:]]*\)[[:space:]]*.*'
+egrep -q $regex ${fs_header} && \
+(egrep $regex ${fs_header} | \
+ sed -r "s/$regex/\2 \1/g" | \
+ xargs printf "\t[%d + 1] = \"%s\",\n")
+printf "};\n"