header file fixes: multiple include guard consistency and correctness
[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 #if defined(_GNU_SOURCE) || defined(_BSD_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
90 #define F_OK 0
91 #define R_OK 4
92 #define W_OK 2
93 #define X_OK 1
94 #define F_ULOCK 0
95 #define F_LOCK  1
96 #define F_TLOCK 2
97 #define F_TEST  3
98
99 int lockf(int, int, off_t);
100 #endif
101
102 #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
103 #define open64 open
104 #define openat64 openat
105 #define creat64 creat
106 #define lockf64 lockf
107 #define posix_fadvise64 posix_fadvise
108 #define posix_fallocate64 posix_fallocate
109 #define off64_t off_t
110 #endif
111
112 #ifdef __cplusplus
113 }
114 #endif
115
116 #endif