1*71db0c75SAndroid Build Coastguard Worker //===-- Definition of macros from fcntl.h ---------------------------------===// 2*71db0c75SAndroid Build Coastguard Worker // 3*71db0c75SAndroid Build Coastguard Worker // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*71db0c75SAndroid Build Coastguard Worker // See https://llvm.org/LICENSE.txt for license information. 5*71db0c75SAndroid Build Coastguard Worker // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*71db0c75SAndroid Build Coastguard Worker // 7*71db0c75SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 8*71db0c75SAndroid Build Coastguard Worker 9*71db0c75SAndroid Build Coastguard Worker #ifndef LLVM_LIBC_MACROS_LINUX_FCNTL_MACROS_H 10*71db0c75SAndroid Build Coastguard Worker #define LLVM_LIBC_MACROS_LINUX_FCNTL_MACROS_H 11*71db0c75SAndroid Build Coastguard Worker 12*71db0c75SAndroid Build Coastguard Worker // File creation flags 13*71db0c75SAndroid Build Coastguard Worker #define O_CLOEXEC 02000000 14*71db0c75SAndroid Build Coastguard Worker #define O_CREAT 00000100 15*71db0c75SAndroid Build Coastguard Worker #define O_PATH 010000000 16*71db0c75SAndroid Build Coastguard Worker 17*71db0c75SAndroid Build Coastguard Worker #ifdef __aarch64__ 18*71db0c75SAndroid Build Coastguard Worker #define O_DIRECTORY 040000 19*71db0c75SAndroid Build Coastguard Worker #else 20*71db0c75SAndroid Build Coastguard Worker #define O_DIRECTORY 00200000 21*71db0c75SAndroid Build Coastguard Worker #endif 22*71db0c75SAndroid Build Coastguard Worker 23*71db0c75SAndroid Build Coastguard Worker #define O_EXCL 00000200 24*71db0c75SAndroid Build Coastguard Worker #define O_NOCTTY 00000400 25*71db0c75SAndroid Build Coastguard Worker 26*71db0c75SAndroid Build Coastguard Worker #ifdef __aarch64__ 27*71db0c75SAndroid Build Coastguard Worker #define O_NOFOLLOW 0100000 28*71db0c75SAndroid Build Coastguard Worker #else 29*71db0c75SAndroid Build Coastguard Worker #define O_NOFOLLOW 00400000 30*71db0c75SAndroid Build Coastguard Worker #endif 31*71db0c75SAndroid Build Coastguard Worker 32*71db0c75SAndroid Build Coastguard Worker #define O_TRUNC 00001000 33*71db0c75SAndroid Build Coastguard Worker #define O_TMPFILE (020000000 | O_DIRECTORY) 34*71db0c75SAndroid Build Coastguard Worker 35*71db0c75SAndroid Build Coastguard Worker // File status flags 36*71db0c75SAndroid Build Coastguard Worker #define O_APPEND 00002000 37*71db0c75SAndroid Build Coastguard Worker #define O_DSYNC 00010000 38*71db0c75SAndroid Build Coastguard Worker #define O_NONBLOCK 00004000 39*71db0c75SAndroid Build Coastguard Worker #define O_SYNC 04000000 | O_DSYNC 40*71db0c75SAndroid Build Coastguard Worker 41*71db0c75SAndroid Build Coastguard Worker // File access mode mask 42*71db0c75SAndroid Build Coastguard Worker #define O_ACCMODE 00000003 43*71db0c75SAndroid Build Coastguard Worker 44*71db0c75SAndroid Build Coastguard Worker // File access mode flags 45*71db0c75SAndroid Build Coastguard Worker #define O_RDONLY 00000000 46*71db0c75SAndroid Build Coastguard Worker #define O_RDWR 00000002 47*71db0c75SAndroid Build Coastguard Worker #define O_WRONLY 00000001 48*71db0c75SAndroid Build Coastguard Worker 49*71db0c75SAndroid Build Coastguard Worker // Special directory FD to indicate that the path argument to 50*71db0c75SAndroid Build Coastguard Worker // openat is relative to the current directory. 51*71db0c75SAndroid Build Coastguard Worker #define AT_FDCWD -100 52*71db0c75SAndroid Build Coastguard Worker 53*71db0c75SAndroid Build Coastguard Worker // Special flag to the function unlinkat to indicate that it 54*71db0c75SAndroid Build Coastguard Worker // has to perform the equivalent of "rmdir" on the path argument. 55*71db0c75SAndroid Build Coastguard Worker #define AT_REMOVEDIR 0x200 56*71db0c75SAndroid Build Coastguard Worker 57*71db0c75SAndroid Build Coastguard Worker // Special flag for functions like lstat to convey that symlinks 58*71db0c75SAndroid Build Coastguard Worker // should not be followed. 59*71db0c75SAndroid Build Coastguard Worker #define AT_SYMLINK_NOFOLLOW 0x100 60*71db0c75SAndroid Build Coastguard Worker 61*71db0c75SAndroid Build Coastguard Worker // Allow empty relative pathname. 62*71db0c75SAndroid Build Coastguard Worker #define AT_EMPTY_PATH 0x1000 63*71db0c75SAndroid Build Coastguard Worker 64*71db0c75SAndroid Build Coastguard Worker // Values of SYS_fcntl commands. 65*71db0c75SAndroid Build Coastguard Worker #define F_DUPFD 0 66*71db0c75SAndroid Build Coastguard Worker #define F_GETFD 1 67*71db0c75SAndroid Build Coastguard Worker #define F_SETFD 2 68*71db0c75SAndroid Build Coastguard Worker #define F_GETFL 3 69*71db0c75SAndroid Build Coastguard Worker #define F_SETFL 4 70*71db0c75SAndroid Build Coastguard Worker #define F_GETLK 5 71*71db0c75SAndroid Build Coastguard Worker #define F_SETLK 6 72*71db0c75SAndroid Build Coastguard Worker #define F_SETLKW 7 73*71db0c75SAndroid Build Coastguard Worker #define F_SETOWN 8 74*71db0c75SAndroid Build Coastguard Worker #define F_GETOWN 9 75*71db0c75SAndroid Build Coastguard Worker #define F_SETSIG 10 76*71db0c75SAndroid Build Coastguard Worker #define F_GETSIG 11 77*71db0c75SAndroid Build Coastguard Worker #define F_GETLK64 12 78*71db0c75SAndroid Build Coastguard Worker #define F_SETLK64 13 79*71db0c75SAndroid Build Coastguard Worker #define F_SETLKW64 14 80*71db0c75SAndroid Build Coastguard Worker #define F_SETOWN_EX 15 81*71db0c75SAndroid Build Coastguard Worker #define F_GETOWN_EX 16 82*71db0c75SAndroid Build Coastguard Worker 83*71db0c75SAndroid Build Coastguard Worker // Open File Description Locks. 84*71db0c75SAndroid Build Coastguard Worker #define F_OFD_GETLK 36 85*71db0c75SAndroid Build Coastguard Worker #define F_OFD_SETLK 37 86*71db0c75SAndroid Build Coastguard Worker #define F_OFD_SETLKW 38 87*71db0c75SAndroid Build Coastguard Worker 88*71db0c75SAndroid Build Coastguard Worker // Close on succesful 89*71db0c75SAndroid Build Coastguard Worker #define F_CLOEXEC 1 90*71db0c75SAndroid Build Coastguard Worker 91*71db0c75SAndroid Build Coastguard Worker // Close on execute for fcntl. 92*71db0c75SAndroid Build Coastguard Worker #define FD_CLOEXEC 1 93*71db0c75SAndroid Build Coastguard Worker 94*71db0c75SAndroid Build Coastguard Worker #define F_RDLCK 0 95*71db0c75SAndroid Build Coastguard Worker #define F_WRLCK 1 96*71db0c75SAndroid Build Coastguard Worker #define F_UNLCK 2 97*71db0c75SAndroid Build Coastguard Worker 98*71db0c75SAndroid Build Coastguard Worker // For Large File Support 99*71db0c75SAndroid Build Coastguard Worker #if defined(_LARGEFILE64_SOURCE) 100*71db0c75SAndroid Build Coastguard Worker #define F_GETLK F_GETLK64 101*71db0c75SAndroid Build Coastguard Worker #define F_SETLK F_SETLK64 102*71db0c75SAndroid Build Coastguard Worker #define F_SETLKW F_SETLKW64 103*71db0c75SAndroid Build Coastguard Worker #endif 104*71db0c75SAndroid Build Coastguard Worker 105*71db0c75SAndroid Build Coastguard Worker #endif // LLVM_LIBC_MACROS_LINUX_FCNTL_MACROS_H 106