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