From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Adrian Hunter <adrian.hunter@intel.com>,
David Ahern <dsahern@gmail.com>, Jiri Olsa <jolsa@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Wang Nan <wangnan0@huawei.com>
Subject: [PATCH 12/86] tools include uapi asm-generic: Grab a copy of fcntl.h
Date: Wed, 19 Jul 2017 11:28:36 -0300 [thread overview]
Message-ID: <20170719142950.3747-13-acme@kernel.org> (raw)
In-Reply-To: <20170719142950.3747-1-acme@kernel.org>
From: Arnaldo Carvalho de Melo <acme@redhat.com>
We'll need defines for beautifying fcntl arguments that are not
available in older distros, these:
trace/beauty/fcntl.c: In function 'syscall_arg__scnprintf_fcntl_arg':
trace/beauty/fcntl.c:93: error: 'F_OFD_SETLK' undeclared (first use in this function)
trace/beauty/fcntl.c:93: error: (Each undeclared identifier is reported only once
trace/beauty/fcntl.c:93: error: for each function it appears in.)
trace/beauty/fcntl.c:93: error: 'F_OFD_SETLKW' undeclared (first use in this function)
trace/beauty/fcntl.c:93: error: 'F_OFD_GETLK' undeclared (first use in this function)
trace/beauty/fcntl.c:94: error: 'F_GETOWN_EX' undeclared (first use in this function)
trace/beauty/fcntl.c:94: error: 'F_SETOWN_EX' undeclared (first use in this function)
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-gvlw67a47e9z65jdunj4je5s@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/include/uapi/asm-generic/fcntl.h | 220 +++++++++++++++++++++++++++++++++
1 file changed, 220 insertions(+)
create mode 100644 tools/include/uapi/asm-generic/fcntl.h
diff --git a/tools/include/uapi/asm-generic/fcntl.h b/tools/include/uapi/asm-generic/fcntl.h
new file mode 100644
index 000000000000..ac190958c981
--- /dev/null
+++ b/tools/include/uapi/asm-generic/fcntl.h
@@ -0,0 +1,220 @@
+#ifndef _ASM_GENERIC_FCNTL_H
+#define _ASM_GENERIC_FCNTL_H
+
+#include <linux/types.h>
+
+/*
+ * FMODE_EXEC is 0x20
+ * FMODE_NONOTIFY is 0x4000000
+ * These cannot be used by userspace O_* until internal and external open
+ * flags are split.
+ * -Eric Paris
+ */
+
+/*
+ * When introducing new O_* bits, please check its uniqueness in fcntl_init().
+ */
+
+#define O_ACCMODE 00000003
+#define O_RDONLY 00000000
+#define O_WRONLY 00000001
+#define O_RDWR 00000002
+#ifndef O_CREAT
+#define O_CREAT 00000100 /* not fcntl */
+#endif
+#ifndef O_EXCL
+#define O_EXCL 00000200 /* not fcntl */
+#endif
+#ifndef O_NOCTTY
+#define O_NOCTTY 00000400 /* not fcntl */
+#endif
+#ifndef O_TRUNC
+#define O_TRUNC 00001000 /* not fcntl */
+#endif
+#ifndef O_APPEND
+#define O_APPEND 00002000
+#endif
+#ifndef O_NONBLOCK
+#define O_NONBLOCK 00004000
+#endif
+#ifndef O_DSYNC
+#define O_DSYNC 00010000 /* used to be O_SYNC, see below */
+#endif
+#ifndef FASYNC
+#define FASYNC 00020000 /* fcntl, for BSD compatibility */
+#endif
+#ifndef O_DIRECT
+#define O_DIRECT 00040000 /* direct disk access hint */
+#endif
+#ifndef O_LARGEFILE
+#define O_LARGEFILE 00100000
+#endif
+#ifndef O_DIRECTORY
+#define O_DIRECTORY 00200000 /* must be a directory */
+#endif
+#ifndef O_NOFOLLOW
+#define O_NOFOLLOW 00400000 /* don't follow links */
+#endif
+#ifndef O_NOATIME
+#define O_NOATIME 01000000
+#endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 02000000 /* set close_on_exec */
+#endif
+
+/*
+ * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using
+ * the O_SYNC flag. We continue to use the existing numerical value
+ * for O_DSYNC semantics now, but using the correct symbolic name for it.
+ * This new value is used to request true Posix O_SYNC semantics. It is
+ * defined in this strange way to make sure applications compiled against
+ * new headers get at least O_DSYNC semantics on older kernels.
+ *
+ * This has the nice side-effect that we can simply test for O_DSYNC
+ * wherever we do not care if O_DSYNC or O_SYNC is used.
+ *
+ * Note: __O_SYNC must never be used directly.
+ */
+#ifndef O_SYNC
+#define __O_SYNC 04000000
+#define O_SYNC (__O_SYNC|O_DSYNC)
+#endif
+
+#ifndef O_PATH
+#define O_PATH 010000000
+#endif
+
+#ifndef __O_TMPFILE
+#define __O_TMPFILE 020000000
+#endif
+
+/* a horrid kludge trying to make sure that this will fail on old kernels */
+#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
+#define O_TMPFILE_MASK (__O_TMPFILE | O_DIRECTORY | O_CREAT)
+
+#ifndef O_NDELAY
+#define O_NDELAY O_NONBLOCK
+#endif
+
+#define F_DUPFD 0 /* dup */
+#define F_GETFD 1 /* get close_on_exec */
+#define F_SETFD 2 /* set/clear close_on_exec */
+#define F_GETFL 3 /* get file->f_flags */
+#define F_SETFL 4 /* set file->f_flags */
+#ifndef F_GETLK
+#define F_GETLK 5
+#define F_SETLK 6
+#define F_SETLKW 7
+#endif
+#ifndef F_SETOWN
+#define F_SETOWN 8 /* for sockets. */
+#define F_GETOWN 9 /* for sockets. */
+#endif
+#ifndef F_SETSIG
+#define F_SETSIG 10 /* for sockets. */
+#define F_GETSIG 11 /* for sockets. */
+#endif
+
+#ifndef CONFIG_64BIT
+#ifndef F_GETLK64
+#define F_GETLK64 12 /* using 'struct flock64' */
+#define F_SETLK64 13
+#define F_SETLKW64 14
+#endif
+#endif
+
+#ifndef F_SETOWN_EX
+#define F_SETOWN_EX 15
+#define F_GETOWN_EX 16
+#endif
+
+#ifndef F_GETOWNER_UIDS
+#define F_GETOWNER_UIDS 17
+#endif
+
+/*
+ * Open File Description Locks
+ *
+ * Usually record locks held by a process are released on *any* close and are
+ * not inherited across a fork().
+ *
+ * These cmd values will set locks that conflict with process-associated
+ * record locks, but are "owned" by the open file description, not the
+ * process. This means that they are inherited across fork() like BSD (flock)
+ * locks, and they are only released automatically when the last reference to
+ * the the open file against which they were acquired is put.
+ */
+#define F_OFD_GETLK 36
+#define F_OFD_SETLK 37
+#define F_OFD_SETLKW 38
+
+#define F_OWNER_TID 0
+#define F_OWNER_PID 1
+#define F_OWNER_PGRP 2
+
+struct f_owner_ex {
+ int type;
+ __kernel_pid_t pid;
+};
+
+/* for F_[GET|SET]FL */
+#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
+
+/* for posix fcntl() and lockf() */
+#ifndef F_RDLCK
+#define F_RDLCK 0
+#define F_WRLCK 1
+#define F_UNLCK 2
+#endif
+
+/* for old implementation of bsd flock () */
+#ifndef F_EXLCK
+#define F_EXLCK 4 /* or 3 */
+#define F_SHLCK 8 /* or 4 */
+#endif
+
+/* operations for bsd flock(), also used by the kernel implementation */
+#define LOCK_SH 1 /* shared lock */
+#define LOCK_EX 2 /* exclusive lock */
+#define LOCK_NB 4 /* or'd with one of the above to prevent
+ blocking */
+#define LOCK_UN 8 /* remove lock */
+
+#define LOCK_MAND 32 /* This is a mandatory flock ... */
+#define LOCK_READ 64 /* which allows concurrent read operations */
+#define LOCK_WRITE 128 /* which allows concurrent write operations */
+#define LOCK_RW 192 /* which allows concurrent read & write ops */
+
+#define F_LINUX_SPECIFIC_BASE 1024
+
+#ifndef HAVE_ARCH_STRUCT_FLOCK
+#ifndef __ARCH_FLOCK_PAD
+#define __ARCH_FLOCK_PAD
+#endif
+
+struct flock {
+ short l_type;
+ short l_whence;
+ __kernel_off_t l_start;
+ __kernel_off_t l_len;
+ __kernel_pid_t l_pid;
+ __ARCH_FLOCK_PAD
+};
+#endif
+
+#ifndef HAVE_ARCH_STRUCT_FLOCK64
+#ifndef __ARCH_FLOCK64_PAD
+#define __ARCH_FLOCK64_PAD
+#endif
+
+struct flock64 {
+ short l_type;
+ short l_whence;
+ __kernel_loff_t l_start;
+ __kernel_loff_t l_len;
+ __kernel_pid_t l_pid;
+ __ARCH_FLOCK64_PAD
+};
+#endif
+
+#endif /* _ASM_GENERIC_FCNTL_H */
--
2.9.4
next prev parent reply other threads:[~2017-07-19 14:31 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-19 14:28 [GIT PULL 00/86] perf/core improvements and fixes Arnaldo Carvalho de Melo
2017-07-19 14:28 ` Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 01/86] perf annotate: Check for fused instructions Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 02/86] perf annotate: Implement visual marker for macro fusion Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 03/86] perf trace: Remove F_ from some of the fcntl command strings Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 04/86] perf trace: Beautify linux specific fcntl commands Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 05/86] tools: Update include/uapi/linux/fcntl.h copy from the kernel Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 06/86] perf trace beauty: Export the strarrays scnprintf method Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 07/86] perf trace: Only build tools/perf/trace/beauty/ when building 'perf trace' Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 08/86] perf trace beauty: Mask ignored fcntl 'arg' parameter Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 09/86] perf trace beauty: Allow accessing syscall args values in a syscall arg formatter Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 10/86] perf trace beauty: Export the "int" and "hex" syscall arg formatters Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 11/86] perf trace beauty: Introduce syscall arg beautifier for long integers Arnaldo Carvalho de Melo
2017-07-19 14:28 ` Arnaldo Carvalho de Melo [this message]
2017-07-19 14:28 ` [PATCH 13/86] perf trace beauty fcntl: Basic 'arg' beautifier Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 14/86] perf trace: Beautify new write hint fcntl commands Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 15/86] perf beauty open: Detach the syscall_arg agnostic bits from the flags formatter Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 16/86] perf trace: Allow syscall_arg beautifiers to set a different return formatter Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 17/86] perf trace beauty open flags: Support O_TMPFILE and O_NOFOLLOW Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 18/86] perf trace beauty open flags: Do not depend on the system's O_LARGEFILE define Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 19/86] perf trace beauty fcntl: Beautify F_GETFL return value Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 20/86] perf trace beauty open flags: Move RDRW to the start of the output Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 21/86] perf trace beauty fcntl flags: Beautify F_SETFL arg Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 22/86] perf trace beauty fcntl: Beautify F_[GS]ETFD arg/return value Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 23/86] perf trace beauty: Give syscall return beautifier more context Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 24/86] perf trace beauty: Export the fd beautifier for use in more places Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 25/86] perf trace beauty fcntl: Augment the return of F_DUPFD(_CLOEXEC) Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 26/86] perf trace beauty: Export the pid beautifier for use in more places Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 27/86] perf trace beauty fcntl: Beautify F_GETOWN and F_SETOWN Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 28/86] perf pmu-events: Support additional POWER8+ PVR in mapfile Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 29/86] perf vendor events: Add POWER9 PMU events Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 30/86] perf vendor events: Add POWER9 PVRs to mapfile Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 31/86] tools include uapi x86: Grab a copy of unistd.h Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 32/86] tools include uapi x86: Add __NR_setns, if missing Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 33/86] tools build: Add test for setns() Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 34/86] perf symbols: Find symbols in different mount namespace Arnaldo Carvalho de Melo
2017-07-19 14:28 ` [PATCH 35/86] perf maps: Lookup maps in both intitial mountns and inner mountns Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 36/86] perf probe: Allow placing uprobes in alternate namespaces Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 37/86] perf buildid-cache: Support binary objects from other namespaces Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 38/86] perf buildid-cache: Cache debuginfo Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 39/86] perf evsel: Allow asking for max precise_ip in new_cycles() Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 40/86] perf evlist: Allow asking for max precise_ip in add_default() Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 41/86] perf record: Do not ask for precise_ip with --no-samples Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 42/86] perf test sdt: Handle realpath() failure Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 43/86] perf tests attr: Do not store failed events Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 44/86] perf tests attr: Add test_attr__ready function Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 45/86] perf tests attr: Make compare_data global Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 46/86] perf tests attr: Rename compare_data to data_equal Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 47/86] perf tests attr: Add 1s for exclude_kernel and task base bits Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 48/86] perf tests attr: Fix record dwarf test Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 49/86] perf tests attr: Fix no-delay test Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 50/86] perf tests attr: Add proper return values Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 51/86] perf tests attr: Fix cpu test disabled term setup Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 52/86] perf tests attr: Fix sample_period setup Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 53/86] perf tests attr: Fix precise_ip setup Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 54/86] perf tests attr: Fix stat sample_type setup Arnaldo Carvalho de Melo
2017-07-19 14:29 ` Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 55/86] perf tests attr: Add optional term Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 56/86] perf trace beauty: Export strarray for use in per-object beautifiers Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 57/86] perf trace beauty fcntl: Beautify F_GETLEASE and F_SETLEASE arg/return Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 58/86] perf trace: Group per syscall arg formatter info into one struct Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 59/86] perf trace: Allow syscall arg formatters to request non suppression of zeros Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 60/86] perf trace beauty fcntl: Do not suppress 'cmd' when zero, should be DUPFD Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 61/86] perf trace beauty fcntl: Beautify the 'arg' for DUPFD Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 62/86] perf trace beauty: Simplify syscall return formatting Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 63/86] perf report: Enable finding kernel inline functions Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 64/86] perf header: Encapsulate read and swap Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 65/86] perf header: Add PROCESS_STR_FUN macro Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 66/86] perf header: Fail on write_padded error Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 67/86] perf util: Add const modifier to buf in "writen" function Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 68/86] perf header: Revamp do_write() Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 69/86] perf header: Add struct feat_fd for write Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 70/86] perf header: Use struct feat_fd for print Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 71/86] perf header: Use struct feat_fd to process header records Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 72/86] perf header: Don't pass struct perf_file_section to process_##_feat Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 73/86] perf header: Use struct feat_fd in read header records Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 74/86] perf header: Make write_pmu_mappings pipe-mode friendly Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 75/86] perf header: Add a buffer to struct feat_fd Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 76/86] perf header: Change FEAT_OP* macros Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 77/86] perf tool: Add show_feature_header to perf_tool Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 78/86] perf tools: Add feature header record to pipe-mode Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 79/86] perf header: Add event desc to pipe-mode header Arnaldo Carvalho de Melo
2017-07-19 14:29 ` Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 80/86] perf/core: Define the common branch type classification Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 81/86] perf/x86/intel: Record branch type Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 82/86] perf record: Create a new option save_type in --branch-filter Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 83/86] perf report: Refactor the branch info printing code Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 84/86] perf util: Create branch.c/.h for common branch functions Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 85/86] perf report: Show branch type statistics for stdio mode Arnaldo Carvalho de Melo
2017-07-19 14:29 ` [PATCH 86/86] perf report: Show branch type in callchain entry Arnaldo Carvalho de Melo
2017-07-20 8:32 ` [GIT PULL 00/86] perf/core improvements and fixes Ingo Molnar
2017-07-20 8:32 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170719142950.3747-13-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=wangnan0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.