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  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _ASM_GENERIC_FCNTL_H
20 #define _ASM_GENERIC_FCNTL_H
21 #include <bits/flock64.h>
22 #include <bits/flock.h>
23 #include <linux/types.h>
24 #define O_ACCMODE 00000003
25 #define O_RDONLY 00000000
26 #define O_WRONLY 00000001
27 #define O_RDWR 00000002
28 #ifndef O_CREAT
29 #define O_CREAT 00000100
30 #endif
31 #ifndef O_EXCL
32 #define O_EXCL 00000200
33 #endif
34 #ifndef O_NOCTTY
35 #define O_NOCTTY 00000400
36 #endif
37 #ifndef O_TRUNC
38 #define O_TRUNC 00001000
39 #endif
40 #ifndef O_APPEND
41 #define O_APPEND 00002000
42 #endif
43 #ifndef O_NONBLOCK
44 #define O_NONBLOCK 00004000
45 #endif
46 #ifndef O_DSYNC
47 #define O_DSYNC 00010000
48 #endif
49 #ifndef FASYNC
50 #define FASYNC 00020000
51 #endif
52 #ifndef O_DIRECT
53 #define O_DIRECT 00040000
54 #endif
55 #ifndef O_LARGEFILE
56 #define O_LARGEFILE 00100000
57 #endif
58 #ifndef O_DIRECTORY
59 #define O_DIRECTORY 00200000
60 #endif
61 #ifndef O_NOFOLLOW
62 #define O_NOFOLLOW 00400000
63 #endif
64 #ifndef O_NOATIME
65 #define O_NOATIME 01000000
66 #endif
67 #ifndef O_CLOEXEC
68 #define O_CLOEXEC 02000000
69 #endif
70 #ifndef O_SYNC
71 #define __O_SYNC 04000000
72 #define O_SYNC (__O_SYNC | O_DSYNC)
73 #endif
74 #ifndef O_PATH
75 #define O_PATH 010000000
76 #endif
77 #ifndef __O_TMPFILE
78 #define __O_TMPFILE 020000000
79 #endif
80 #define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
81 #define O_TMPFILE_MASK (__O_TMPFILE | O_DIRECTORY | O_CREAT)
82 #ifndef O_NDELAY
83 #define O_NDELAY O_NONBLOCK
84 #endif
85 #define F_DUPFD 0
86 #define F_GETFD 1
87 #define F_SETFD 2
88 #define F_GETFL 3
89 #define F_SETFL 4
90 #ifndef F_GETLK
91 #define F_GETLK 5
92 #define F_SETLK 6
93 #define F_SETLKW 7
94 #endif
95 #ifndef F_SETOWN
96 #define F_SETOWN 8
97 #define F_GETOWN 9
98 #endif
99 #ifndef F_SETSIG
100 #define F_SETSIG 10
101 #define F_GETSIG 11
102 #endif
103 #ifndef __LP64__
104 #ifndef F_GETLK64
105 #define F_GETLK64 12
106 #define F_SETLK64 13
107 #define F_SETLKW64 14
108 #endif
109 #endif
110 #ifndef F_SETOWN_EX
111 #define F_SETOWN_EX 15
112 #define F_GETOWN_EX 16
113 #endif
114 #ifndef F_GETOWNER_UIDS
115 #define F_GETOWNER_UIDS 17
116 #endif
117 #define F_OFD_GETLK 36
118 #define F_OFD_SETLK 37
119 #define F_OFD_SETLKW 38
120 #define F_OWNER_TID 0
121 #define F_OWNER_PID 1
122 #define F_OWNER_PGRP 2
123 struct f_owner_ex {
124   int type;
125   __kernel_pid_t pid;
126 };
127 #define FD_CLOEXEC 1
128 #ifndef F_RDLCK
129 #define F_RDLCK 0
130 #define F_WRLCK 1
131 #define F_UNLCK 2
132 #endif
133 #ifndef F_EXLCK
134 #define F_EXLCK 4
135 #define F_SHLCK 8
136 #endif
137 #define LOCK_SH 1
138 #define LOCK_EX 2
139 #define LOCK_NB 4
140 #define LOCK_UN 8
141 #define LOCK_MAND 32
142 #define LOCK_READ 64
143 #define LOCK_WRITE 128
144 #define LOCK_RW 192
145 #define F_LINUX_SPECIFIC_BASE 1024
146 #ifndef HAVE_ARCH_STRUCT_FLOCK
147 #ifndef __ARCH_FLOCK_PAD
148 #define __ARCH_FLOCK_PAD
149 #endif
150 #endif
151 #ifndef HAVE_ARCH_STRUCT_FLOCK64
152 #ifndef __ARCH_FLOCK64_PAD
153 #define __ARCH_FLOCK64_PAD
154 #endif
155 #endif
156 #endif
157