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