Files
linux-stable-mirror/arch/parisc/include/uapi/asm/fcntl.h
T
Jori KoolstraandChristian Brauner 0da79c259a 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>
2026-06-06 15:34:03 +02:00

40 lines
1021 B
C

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _PARISC_FCNTL_H
#define _PARISC_FCNTL_H
#define O_APPEND (1 << 3)
#define O_CREAT (1 << 8) /* not fcntl */
#define O_EXCL (1 << 10) /* not fcntl */
#define O_LARGEFILE (1 << 11)
#define __O_SYNC (1 << 15)
#define O_SYNC (__O_SYNC|O_DSYNC)
#define O_NONBLOCK (1 << 16)
#define O_NOCTTY (1 << 17) /* not fcntl */
#define O_DSYNC (1 << 18)
#define O_NOATIME (1 << 20)
#define O_CLOEXEC (1 << 21) /* set close_on_exec */
#define O_DIRECTORY (1 << 12) /* must be a directory */
#define O_NOFOLLOW (1 << 7) /* don't follow links */
#define O_PATH (1 << 22)
#define __O_TMPFILE (1 << 23)
#define F_GETLK64 8
#define F_SETLK64 9
#define F_SETLKW64 10
#define F_GETOWN 11 /* for sockets. */
#define F_SETOWN 12 /* for sockets. */
#define F_SETSIG 13 /* for sockets. */
#define F_GETSIG 14 /* for sockets. */
/* for posix fcntl() and lockf() */
#define F_RDLCK 01
#define F_WRLCK 02
#define F_UNLCK 03
#include <asm-generic/fcntl.h>
#endif