fcntl.h
001: #ifndef _ASM_GENERIC_FCNTL_H
002: #define _ASM_GENERIC_FCNTL_H
003:
004: #include <linux/types.h>
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018: #define O_ACCMODE 00000003
019: #define O_RDONLY 00000000
020: #define O_WRONLY 00000001
021: #define O_RDWR 00000002
022: #ifndef O_CREAT
023: #define O_CREAT 00000100
024: #endif
025: #ifndef O_EXCL
026: #define O_EXCL 00000200
027: #endif
028: #ifndef O_NOCTTY
029: #define O_NOCTTY 00000400
030: #endif
031: #ifndef O_TRUNC
032: #define O_TRUNC 00001000
033: #endif
034: #ifndef O_APPEND
035: #define O_APPEND 00002000
036: #endif
037: #ifndef O_NONBLOCK
038: #define O_NONBLOCK 00004000
039: #endif
040: #ifndef O_DSYNC
041: #define O_DSYNC 00010000
042: #endif
043: #ifndef FASYNC
044: #define FASYNC 00020000
045: #endif
046: #ifndef O_DIRECT
047: #define O_DIRECT 00040000
048: #endif
049: #ifndef O_LARGEFILE
050: #define O_LARGEFILE 00100000
051: #endif
052: #ifndef O_DIRECTORY
053: #define O_DIRECTORY 00200000
054: #endif
055: #ifndef O_NOFOLLOW
056: #define O_NOFOLLOW 00400000
057: #endif
058: #ifndef O_NOATIME
059: #define O_NOATIME 01000000
060: #endif
061: #ifndef O_CLOEXEC
062: #define O_CLOEXEC 02000000
063: #endif
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078: #ifndef O_SYNC
079: #define __O_SYNC 04000000
080: #define O_SYNC (__O_SYNC|O_DSYNC)
081: #endif
082:
083: #ifndef O_PATH
084: #define O_PATH 010000000
085: #endif
086:
087: #ifndef O_NDELAY
088: #define O_NDELAY O_NONBLOCK
089: #endif
090:
091: #define F_DUPFD 0
092: #define F_GETFD 1
093: #define F_SETFD 2
094: #define F_GETFL 3
095: #define F_SETFL 4
096: #ifndef F_GETLK
097: #define F_GETLK 5
098: #define F_SETLK 6
099: #define F_SETLKW 7
100: #endif
101: #ifndef F_SETOWN
102: #define F_SETOWN 8
103: #define F_GETOWN 9
104: #endif
105: #ifndef F_SETSIG
106: #define F_SETSIG 10
107: #define F_GETSIG 11
108: #endif
109:
110: #ifndef CONFIG_64BIT
111: #ifndef F_GETLK64
112: #define F_GETLK64 12
113: #define F_SETLK64 13
114: #define F_SETLKW64 14
115: #endif
116: #endif
117:
118: #ifndef F_SETOWN_EX
119: #define F_SETOWN_EX 15
120: #define F_GETOWN_EX 16
121: #endif
122:
123: #define F_OWNER_TID 0
124: #define F_OWNER_PID 1
125: #define F_OWNER_PGRP 2
126:
127: struct f_owner_ex {
128: int type;
129: __kernel_pid_t pid;
130: };
131:
132:
133: #define FD_CLOEXEC 1
134:
135:
136: #ifndef F_RDLCK
137: #define F_RDLCK 0
138: #define F_WRLCK 1
139: #define F_UNLCK 2
140: #endif
141:
142:
143: #ifndef F_EXLCK
144: #define F_EXLCK 4
145: #define F_SHLCK 8
146: #endif
147:
148:
149: #define LOCK_SH 1
150: #define LOCK_EX 2
151: #define LOCK_NB 4
152:
153: #define LOCK_UN 8
154:
155: #define LOCK_MAND 32
156: #define LOCK_READ 64
157: #define LOCK_WRITE 128
158: #define LOCK_RW 192
159:
160: #define F_LINUX_SPECIFIC_BASE 1024
161:
162: #ifndef HAVE_ARCH_STRUCT_FLOCK
163: #ifndef __ARCH_FLOCK_PAD
164: #define __ARCH_FLOCK_PAD
165: #endif
166:
167: struct flock {
168: short l_type;
169: short l_whence;
170: __kernel_off_t l_start;
171: __kernel_off_t l_len;
172: __kernel_pid_t l_pid;
173: __ARCH_FLOCK_PAD
174: };
175: #endif
176:
177: #ifndef CONFIG_64BIT
178:
179: #ifndef HAVE_ARCH_STRUCT_FLOCK64
180: #ifndef __ARCH_FLOCK64_PAD
181: #define __ARCH_FLOCK64_PAD
182: #endif
183:
184: struct flock64 {
185: short l_type;
186: short l_whence;
187: __kernel_loff_t l_start;
188: __kernel_loff_t l_len;
189: __kernel_pid_t l_pid;
190: __ARCH_FLOCK64_PAD
191: };
192: #endif
193: #endif
194:
195: #endif
196:
© Andrew Scott 2006 -
2025,
All Rights Reserved