Warning: This file is not a C or C++ file. It does not have highlighting.

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

Warning: This file is not a C or C++ file. It does not have highlighting.

Provided by KDAB

Privacy Policy
Improve your Profiling and Debugging skills
Find out more

source code of libc/include/llvm-libc-macros/linux/fcntl-macros.h