summaryrefslogtreecommitdiff
path: root/arch/mips/include
diff options
context:
space:
mode:
authorJori Koolstra <jkoolstra@xs4all.nl>2026-06-05 00:24:05 +0200
committerChristian Brauner <brauner@kernel.org>2026-06-06 15:34:03 +0200
commit0da79c259ad0554b36761a7135d4f92eb7c46263 (patch)
tree2feb987e749143407d2ce8ef863e0888d34b44bc /arch/mips/include
parent9af8c8a54f6ef1ec8e97836e456827dd5161b355 (diff)
downloadlinux-next-0da79c259ad0554b36761a7135d4f92eb7c46263.tar.gz
linux-next-0da79c259ad0554b36761a7135d4f92eb7c46263.zip
vfs: uapi: retire octal and hex numbers in favor of (1 << n) for O_ flags
A recent build failure[1] exposed the diffculty of working with the current octal and hex definitions of O_ flags when trying to find a gap for a new flag. This difficulty is compounded by the fact that O_ flags may have architectural specific values. Replace the hex/octal #defines, which are hard to parse when looking for free bits, with explicit bit shifts like (1 << 11). Also, add comments that identify which architectures redefine some of the seemingly free ("cursed") bits in uapi/asm-generic/fcntl.h. These should not be used to define new O_ flags (for now, at least). The translastion was done with Claude Opus 4.8, and verified with a (non-AI) gawk script. The accounting of which architectures claim which bit-gaps in uapi/asm-generic/fcntl.h is also done by hand. [1]: https://lore.kernel.org/all/agruPPybCx8q2XcJ@sirena.org.uk/ Assisted-by: Claude:Opus 4.8 Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl> Link: https://patch.msgid.link/20260604222405.5382-1-jkoolstra@xs4all.nl Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Diffstat (limited to 'arch/mips/include')
-rw-r--r--arch/mips/include/uapi/asm/fcntl.h22
1 files changed, 11 insertions, 11 deletions
diff --git a/arch/mips/include/uapi/asm/fcntl.h b/arch/mips/include/uapi/asm/fcntl.h
index 0369a38e3d4f..549fc65d849d 100644
--- a/arch/mips/include/uapi/asm/fcntl.h
+++ b/arch/mips/include/uapi/asm/fcntl.h
@@ -11,15 +11,15 @@
#include <asm/sgidefs.h>
-#define O_APPEND 0x0008
-#define O_DSYNC 0x0010 /* used to be O_SYNC, see below */
-#define O_NONBLOCK 0x0080
-#define O_CREAT 0x0100 /* not fcntl */
-#define O_TRUNC 0x0200 /* not fcntl */
-#define O_EXCL 0x0400 /* not fcntl */
-#define O_NOCTTY 0x0800 /* not fcntl */
-#define FASYNC 0x1000 /* fcntl, for BSD compatibility */
-#define O_LARGEFILE 0x2000 /* allow large file opens */
+#define O_APPEND (1 << 3)
+#define O_DSYNC (1 << 4) /* used to be O_SYNC, see below */
+#define O_NONBLOCK (1 << 7)
+#define O_CREAT (1 << 8) /* not fcntl */
+#define O_TRUNC (1 << 9) /* not fcntl */
+#define O_EXCL (1 << 10) /* not fcntl */
+#define O_NOCTTY (1 << 11) /* not fcntl */
+#define FASYNC (1 << 12) /* fcntl, for BSD compatibility */
+#define O_LARGEFILE (1 << 13) /* allow large file opens */
/*
* 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
@@ -33,9 +33,9 @@
*
* Note: __O_SYNC must never be used directly.
*/
-#define __O_SYNC 0x4000
+#define __O_SYNC (1 << 14)
#define O_SYNC (__O_SYNC|O_DSYNC)
-#define O_DIRECT 0x8000 /* direct disk access hint */
+#define O_DIRECT (1 << 15) /* direct disk access hint */
#define F_GETLK 14
#define F_SETLK 6