add support for ugly *64 functions with _LARGEFILE64_SOURCE
[musl] / include / fcntl.h
1 #ifndef _FCNTL_H
2 #define _FCNTL_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #define __NEED_off_t
9 #define __NEED_pid_t
10 #define __NEED_mode_t
11
12 #include <bits/alltypes.h>
13
14 #include <bits/fcntl.h>
15
16 struct flock
17 {
18         short l_type;
19         short l_whence;
20         off_t l_start;
21         off_t l_len;
22         pid_t l_pid;
23 };
24
25 int creat(const char *, mode_t);
26 int fcntl(int, int, ...);
27 int open(const char *, int, ...);
28 int openat(int, const char *, int, ...);
29 int posix_fadvise(int, off_t, off_t, int);
30 int posix_fallocate(int, off_t, off_t);
31
32 #define O_ACCMODE 03
33 #define O_RDONLY  00
34 #define O_WRONLY  01
35 #define O_RDWR    02
36
37 #define F_DUPFD_CLOEXEC 1030
38
39 #define F_RDLCK 0
40 #define F_WRLCK 1
41 #define F_UNLCK 2
42
43 #define FD_CLOEXEC 1
44
45 #define AT_FDCWD (-100)
46 #define AT_SYMLINK_NOFOLLOW 0x100
47 #define AT_REMOVEDIR 0x200
48 #define AT_SYMLINK_FOLLOW 0x400
49 #define AT_EACCESS 0x200
50
51 #define POSIX_FADV_NORMAL     0
52 #define POSIX_FADV_RANDOM     1
53 #define POSIX_FADV_SEQUENTIAL 2
54 #define POSIX_FADV_WILLNEED   3
55 #define POSIX_FADV_DONTNEED   4
56 #define POSIX_FADV_NOREUSE    5
57
58 #undef SEEK_SET
59 #undef SEEK_CUR
60 #undef SEEK_END
61 #define SEEK_SET 0
62 #define SEEK_CUR 1
63 #define SEEK_END 2
64
65 #ifndef S_IRUSR
66 #define S_ISUID 04000
67 #define S_ISGID 02000
68 #define S_ISVTX 01000
69 #define S_IRUSR 0400
70 #define S_IWUSR 0200
71 #define S_IXUSR 0100
72 #define S_IRWXU 0700
73 #define S_IRGRP 0040
74 #define S_IWGRP 0020
75 #define S_IXGRP 0010
76 #define S_IRWXG 0070
77 #define S_IROTH 0004
78 #define S_IWOTH 0002
79 #define S_IXOTH 0001
80 #define S_IRWXO 0007
81 #endif
82
83 #ifdef _GNU_SOURCE
84 #define FAPPEND O_APPEND
85 #define FFSYNC O_FSYNC
86 #define FASYNC O_ASYNC
87 #define FNONBLOCK O_NONBLOCK
88 #define FNDELAY O_NDELAY
89 #endif
90
91 #ifdef _LARGEFILE64_SOURCE
92 #define open64 open
93 #define openat64 openat
94 #define creat64 creat
95 #define lockf64 lockf
96 #define posix_fadvise64 posix_fadvise
97 #define posix_fallocate64 posix_fallocate
98 #define off64_t off_t
99 #endif
100
101 #ifdef __cplusplus
102 }
103 #endif
104
105 #endif