1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ****************************************************************************
11  ****************************************************************************/
12 #ifndef _ASM_GENERIC_FCNTL_H
13 #define _ASM_GENERIC_FCNTL_H
14 
15 #include <linux/types.h>
16 
17 #define O_ACCMODE 00000003
18 #define O_RDONLY 00000000
19 #define O_WRONLY 00000001
20 #define O_RDWR 00000002
21 #ifndef O_CREAT
22 #define O_CREAT 00000100
23 #endif
24 #ifndef O_EXCL
25 #define O_EXCL 00000200
26 #endif
27 #ifndef O_NOCTTY
28 #define O_NOCTTY 00000400
29 #endif
30 #ifndef O_TRUNC
31 #define O_TRUNC 00001000
32 #endif
33 #ifndef O_APPEND
34 #define O_APPEND 00002000
35 #endif
36 #ifndef O_NONBLOCK
37 #define O_NONBLOCK 00004000
38 #endif
39 #ifndef O_SYNC
40 #define O_SYNC 00010000
41 #endif
42 #ifndef FASYNC
43 #define FASYNC 00020000
44 #endif
45 #ifndef O_DIRECT
46 #define O_DIRECT 00040000
47 #endif
48 #ifndef O_LARGEFILE
49 #define O_LARGEFILE 00100000
50 #endif
51 #ifndef O_DIRECTORY
52 #define O_DIRECTORY 00200000
53 #endif
54 #ifndef O_NOFOLLOW
55 #define O_NOFOLLOW 00400000
56 #endif
57 #ifndef O_NOATIME
58 #define O_NOATIME 01000000
59 #endif
60 #ifndef O_NDELAY
61 #define O_NDELAY O_NONBLOCK
62 #endif
63 
64 #define F_DUPFD 0
65 #define F_GETFD 1
66 #define F_SETFD 2
67 #define F_GETFL 3
68 #define F_SETFL 4
69 #ifndef F_GETLK
70 #define F_GETLK 5
71 #define F_SETLK 6
72 #define F_SETLKW 7
73 #endif
74 #ifndef F_SETOWN
75 #define F_SETOWN 8
76 #define F_GETOWN 9
77 #endif
78 #ifndef F_SETSIG
79 #define F_SETSIG 10
80 #define F_GETSIG 11
81 #endif
82 
83 #define FD_CLOEXEC 1
84 
85 #ifndef F_RDLCK
86 #define F_RDLCK 0
87 #define F_WRLCK 1
88 #define F_UNLCK 2
89 #endif
90 
91 #ifndef F_EXLCK
92 #define F_EXLCK 4
93 #define F_SHLCK 8
94 #endif
95 
96 #ifndef F_INPROGRESS
97 #define F_INPROGRESS 16
98 #endif
99 
100 #define LOCK_SH 1
101 #define LOCK_EX 2
102 #define LOCK_NB 4
103 #define LOCK_UN 8
104 
105 #define LOCK_MAND 32
106 #define LOCK_READ 64
107 #define LOCK_WRITE 128
108 #define LOCK_RW 192
109 
110 #define F_LINUX_SPECIFIC_BASE 1024
111 
112 #ifndef HAVE_ARCH_STRUCT_FLOCK
113 #ifndef __ARCH_FLOCK_PAD
114 #define __ARCH_FLOCK_PAD
115 #endif
116 
117 struct flock {
118  short l_type;
119  short l_whence;
120  off_t l_start;
121  off_t l_len;
122  pid_t l_pid;
123  __ARCH_FLOCK_PAD
124 };
125 #endif
126 
127 #ifndef F_GETLK64
128 #define F_GETLK64 12
129 #define F_SETLK64 13
130 #define F_SETLKW64 14
131 #endif
132 
133 #ifndef HAVE_ARCH_STRUCT_FLOCK64
134 #ifndef __ARCH_FLOCK64_PAD
135 #define __ARCH_FLOCK64_PAD
136 #endif
137 
138 struct flock64 {
139  short l_type;
140  short l_whence;
141  loff_t l_start;
142  loff_t l_len;
143  pid_t l_pid;
144  __ARCH_FLOCK64_PAD
145 };
146 #endif
147 
148 #endif
149