Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/libc/include/llvm-libc-macros/linux/fcntl-macros.h
213799 views
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
107