1 // Copyright (C) 2017 The Android Open Source Project
2 // SPDX-License-Identifier: BSD-2-Clause
3
4 #include <fcntl.h>
5
6 #include "header_checks.h"
7
fcntl_h()8 static void fcntl_h() {
9 MACRO(F_DUPFD);
10 MACRO(F_DUPFD_CLOEXEC);
11 MACRO(F_GETFD);
12 MACRO(F_SETFD);
13 MACRO(F_GETFL);
14 MACRO(F_SETFL);
15 MACRO(F_GETLK);
16 MACRO(F_SETLK);
17 MACRO(F_SETLKW);
18 MACRO(F_GETOWN);
19 MACRO(F_SETOWN);
20
21 MACRO(FD_CLOEXEC);
22
23 MACRO(F_RDLCK);
24 MACRO(F_UNLCK);
25 MACRO(F_WRLCK);
26
27 MACRO(SEEK_SET);
28 MACRO(SEEK_CUR);
29 MACRO(SEEK_END);
30
31 MACRO(O_CLOEXEC);
32 MACRO(O_CREAT);
33 MACRO(O_DIRECTORY);
34 MACRO(O_EXCL);
35 MACRO(O_NOCTTY);
36 MACRO(O_NOFOLLOW);
37 MACRO(O_TRUNC);
38 #if !defined(__linux__)
39 MACRO(O_TTY_INIT);
40 #endif
41
42 MACRO(O_APPEND);
43 MACRO(O_DSYNC);
44 MACRO(O_NONBLOCK);
45 MACRO(O_RSYNC);
46 MACRO(O_SYNC);
47
48 MACRO(O_ACCMODE);
49
50 #if !defined(__linux__)
51 MACRO(O_EXEC);
52 #endif
53 MACRO(O_RDONLY);
54 MACRO(O_RDWR);
55 #if !defined(__linux__)
56 MACRO(O_SEARCH);
57 #endif
58 MACRO(O_WRONLY);
59
60 // POSIX: "The <fcntl.h> header shall define the symbolic constants for
61 // file modes for use as values of mode_t as described in <sys/stat.h>."
62 // Musl only defines the file mode bits (S_IFUSR, etc.) and not the file
63 // type bits (S_IFMT, etc.).
64 #if !defined(ANDROID_HOST_MUSL)
65 #include "sys_stat_h_mode_constants.h"
66 #endif
67
68 MACRO(AT_FDCWD);
69 #if !defined(__BIONIC__) // See comment in "faccessat.cpp".
70 MACRO(AT_EACCESS);
71 #endif
72 MACRO(AT_SYMLINK_NOFOLLOW);
73 MACRO(AT_REMOVEDIR);
74
75 MACRO(POSIX_FADV_DONTNEED);
76 MACRO(POSIX_FADV_NOREUSE);
77 MACRO(POSIX_FADV_NORMAL);
78 MACRO(POSIX_FADV_RANDOM);
79 MACRO(POSIX_FADV_SEQUENTIAL);
80 MACRO(POSIX_FADV_WILLNEED);
81
82 TYPE(struct flock);
83 STRUCT_MEMBER(struct flock, short, l_type);
84 STRUCT_MEMBER(struct flock, short, l_whence);
85 STRUCT_MEMBER(struct flock, off_t, l_start);
86 STRUCT_MEMBER(struct flock, off_t, l_len);
87 STRUCT_MEMBER(struct flock, pid_t, l_pid);
88
89 TYPE(mode_t);
90 TYPE(off_t);
91 TYPE(pid_t);
92
93 FUNCTION(creat, int (*f)(const char*, mode_t));
94 FUNCTION(fcntl, int (*f)(int, int, ...));
95 FUNCTION(open, int (*f)(const char*, int, ...));
96 FUNCTION(openat, int (*f)(int, const char*, int, ...));
97 FUNCTION(posix_fadvise, int (*f)(int, off_t, off_t, int));
98 FUNCTION(posix_fallocate, int (*f)(int, off_t, off_t));
99 }
100