hc
2024-05-16 8d2a02b24d66aa359e83eebc1ed3c0f85367a1cb
kernel/tools/perf/trace/beauty/fcntl.c
....@@ -1,36 +1,36 @@
1
+// SPDX-License-Identifier: LGPL-2.1
12 /*
23 * trace/beauty/fcntl.c
34 *
45 * Copyright (C) 2017, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
5
- *
6
- * Released under the GPL v2. (and only v2, not any later version)
76 */
87
98 #include "trace/beauty/beauty.h"
109 #include <linux/kernel.h>
1110 #include <uapi/linux/fcntl.h>
1211
13
-static size_t fcntl__scnprintf_getfd(unsigned long val, char *bf, size_t size)
12
+static size_t fcntl__scnprintf_getfd(unsigned long val, char *bf, size_t size, bool show_prefix)
1413 {
15
- return scnprintf(bf, size, "%s", val ? "CLOEXEC" : "0");
14
+ return val ? scnprintf(bf, size, "%s", "0") :
15
+ scnprintf(bf, size, "%s%s", show_prefix ? "FD_" : "", "CLOEXEC");
1616 }
1717
1818 static size_t syscall_arg__scnprintf_fcntl_getfd(char *bf, size_t size, struct syscall_arg *arg)
1919 {
20
- return fcntl__scnprintf_getfd(arg->val, bf, size);
20
+ return fcntl__scnprintf_getfd(arg->val, bf, size, arg->show_string_prefix);
2121 }
2222
23
-static size_t fcntl__scnprintf_getlease(unsigned long val, char *bf, size_t size)
23
+static size_t fcntl__scnprintf_getlease(unsigned long val, char *bf, size_t size, bool show_prefix)
2424 {
2525 static const char *fcntl_setlease[] = { "RDLCK", "WRLCK", "UNLCK", };
26
- static DEFINE_STRARRAY(fcntl_setlease);
26
+ static DEFINE_STRARRAY(fcntl_setlease, "F_");
2727
28
- return strarray__scnprintf(&strarray__fcntl_setlease, bf, size, "%x", val);
28
+ return strarray__scnprintf(&strarray__fcntl_setlease, bf, size, "%x", show_prefix, val);
2929 }
3030
3131 static size_t syscall_arg__scnprintf_fcntl_getlease(char *bf, size_t size, struct syscall_arg *arg)
3232 {
33
- return fcntl__scnprintf_getlease(arg->val, bf, size);
33
+ return fcntl__scnprintf_getlease(arg->val, bf, size, arg->show_string_prefix);
3434 }
3535
3636 size_t syscall_arg__scnprintf_fcntl_cmd(char *bf, size_t size, struct syscall_arg *arg)
....@@ -69,22 +69,23 @@
6969
7070 size_t syscall_arg__scnprintf_fcntl_arg(char *bf, size_t size, struct syscall_arg *arg)
7171 {
72
+ bool show_prefix = arg->show_string_prefix;
7273 int cmd = syscall_arg__val(arg, 1);
7374
7475 if (cmd == F_DUPFD)
7576 return syscall_arg__scnprintf_fd(bf, size, arg);
7677
7778 if (cmd == F_SETFD)
78
- return fcntl__scnprintf_getfd(arg->val, bf, size);
79
+ return fcntl__scnprintf_getfd(arg->val, bf, size, show_prefix);
7980
8081 if (cmd == F_SETFL)
81
- return open__scnprintf_flags(arg->val, bf, size);
82
+ return open__scnprintf_flags(arg->val, bf, size, show_prefix);
8283
8384 if (cmd == F_SETOWN)
8485 return syscall_arg__scnprintf_pid(bf, size, arg);
8586
8687 if (cmd == F_SETLEASE)
87
- return fcntl__scnprintf_getlease(arg->val, bf, size);
88
+ return fcntl__scnprintf_getlease(arg->val, bf, size, show_prefix);
8889 /*
8990 * We still don't grab the contents of pointers on entry or exit,
9091 * so just print them as hex numbers