make [U]INTn_C() macros have the right type...
[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_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
56 #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
63 #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
81 #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
89 #ifdef __cplusplus
90 }
91 #endif
92
93 #endif