blob: 1c18c6e2251db1cea2b48316e5e3759de25cad41 [file] [log] [blame]
Rich Felker0b44a032011-02-12 00:22:29 -05001#ifndef _FCNTL_H
2#define _FCNTL_H
3
4#ifdef __cplusplus
5extern "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
16struct 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
25int creat(const char *, mode_t);
26int fcntl(int, int, ...);
27int open(const char *, int, ...);
28int openat(int, const char *, int, ...);
29int posix_fadvise(int, off_t, off_t, int);
30int posix_fallocate(int, off_t, off_t);
31
Rich Felkerc2b18f32011-04-14 21:49:22 -040032#define O_ACCMODE 03
33#define O_RDONLY 00
34#define O_WRONLY 01
35#define O_RDWR 02
36
37#define F_RDLCK 0
38#define F_WRLCK 1
39#define F_UNLCK 2
40
41#define FD_CLOEXEC 1
42
43#define AT_FDCWD (-100)
44#define AT_SYMLINK_NOFOLLOW 0x100
45#define AT_REMOVEDIR 0x200
46#define AT_SYMLINK_FOLLOW 0x400
47#define AT_EACCESS 0x200
48
49#define POSIX_FADV_NORMAL 0
50#define POSIX_FADV_RANDOM 1
51#define POSIX_FADV_SEQUENTIAL 2
52#define POSIX_FADV_WILLNEED 3
53#define POSIX_FADV_DONTNEED 4
54#define POSIX_FADV_NOREUSE 5
55
Rich Felker0b44a032011-02-12 00:22:29 -050056#undef SEEK_SET
57#undef SEEK_CUR
58#undef SEEK_END
59#define SEEK_SET 0
60#define SEEK_CUR 1
61#define SEEK_END 2
62
Rich Felkerac12eb92011-03-08 12:35:35 -050063#ifndef S_IRUSR
64#define S_ISUID 04000
65#define S_ISGID 02000
66#define S_ISVTX 01000
67#define S_IRUSR 0400
68#define S_IWUSR 0200
69#define S_IXUSR 0100
70#define S_IRWXU 0700
71#define S_IRGRP 0040
72#define S_IWGRP 0020
73#define S_IXGRP 0010
74#define S_IRWXG 0070
75#define S_IROTH 0004
76#define S_IWOTH 0002
77#define S_IXOTH 0001
78#define S_IRWXO 0007
79#endif
80
Rich Felkera3aa89d2011-04-14 22:06:30 -040081#ifdef _GNU_SOURCE
82#define FAPPEND O_APPEND
83#define FFSYNC O_FSYNC
84#define FASYNC O_ASYNC
85#define FNONBLOCK O_NONBLOCK
86#define FNDELAY O_NDELAY
87#endif
88
Rich Felker0b44a032011-02-12 00:22:29 -050089#ifdef __cplusplus
90}
91#endif
92
93#endif