.. | .. |
---|
3 | 3 | #define _UAPI_LINUX_FCNTL_H |
---|
4 | 4 | |
---|
5 | 5 | #include <asm/fcntl.h> |
---|
| 6 | +#include <linux/openat2.h> |
---|
6 | 7 | |
---|
7 | 8 | #define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0) |
---|
8 | 9 | #define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1) |
---|
.. | .. |
---|
58 | 59 | * Valid hint values for F_{GET,SET}_RW_HINT. 0 is "not set", or can be |
---|
59 | 60 | * used to clear any hints previously set. |
---|
60 | 61 | */ |
---|
61 | | -#define RWF_WRITE_LIFE_NOT_SET 0 |
---|
| 62 | +#define RWH_WRITE_LIFE_NOT_SET 0 |
---|
62 | 63 | #define RWH_WRITE_LIFE_NONE 1 |
---|
63 | 64 | #define RWH_WRITE_LIFE_SHORT 2 |
---|
64 | 65 | #define RWH_WRITE_LIFE_MEDIUM 3 |
---|
65 | 66 | #define RWH_WRITE_LIFE_LONG 4 |
---|
66 | 67 | #define RWH_WRITE_LIFE_EXTREME 5 |
---|
| 68 | + |
---|
| 69 | +/* |
---|
| 70 | + * The originally introduced spelling is remained from the first |
---|
| 71 | + * versions of the patch set that introduced the feature, see commit |
---|
| 72 | + * v4.13-rc1~212^2~51. |
---|
| 73 | + */ |
---|
| 74 | +#define RWF_WRITE_LIFE_NOT_SET RWH_WRITE_LIFE_NOT_SET |
---|
67 | 75 | |
---|
68 | 76 | /* |
---|
69 | 77 | * Types of directory notifications that may be requested. |
---|
.. | .. |
---|
76 | 84 | #define DN_ATTRIB 0x00000020 /* File changed attibutes */ |
---|
77 | 85 | #define DN_MULTISHOT 0x80000000 /* Don't remove notifier */ |
---|
78 | 86 | |
---|
| 87 | +/* |
---|
| 88 | + * The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EACCESS is |
---|
| 89 | + * meaningful only to faccessat, while AT_REMOVEDIR is meaningful only to |
---|
| 90 | + * unlinkat. The two functions do completely different things and therefore, |
---|
| 91 | + * the flags can be allowed to overlap. For example, passing AT_REMOVEDIR to |
---|
| 92 | + * faccessat would be undefined behavior and thus treating it equivalent to |
---|
| 93 | + * AT_EACCESS is valid undefined behavior. |
---|
| 94 | + */ |
---|
79 | 95 | #define AT_FDCWD -100 /* Special value used to indicate |
---|
80 | 96 | openat should use the current |
---|
81 | 97 | working directory. */ |
---|
82 | 98 | #define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ |
---|
| 99 | +#define AT_EACCESS 0x200 /* Test access permitted for |
---|
| 100 | + effective IDs, not real IDs. */ |
---|
83 | 101 | #define AT_REMOVEDIR 0x200 /* Remove directory instead of |
---|
84 | 102 | unlinking file. */ |
---|
85 | 103 | #define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ |
---|
.. | .. |
---|
91 | 109 | #define AT_STATX_FORCE_SYNC 0x2000 /* - Force the attributes to be sync'd with the server */ |
---|
92 | 110 | #define AT_STATX_DONT_SYNC 0x4000 /* - Don't sync attributes with the server */ |
---|
93 | 111 | |
---|
| 112 | +#define AT_RECURSIVE 0x8000 /* Apply to the entire subtree */ |
---|
94 | 113 | |
---|
95 | 114 | #endif /* _UAPI_LINUX_FCNTL_H */ |
---|