Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.35 184 lines 4.3 kB view raw
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 /* not fcntl */ 12#endif 13#ifndef O_EXCL 14#define O_EXCL 00000200 /* not fcntl */ 15#endif 16#ifndef O_NOCTTY 17#define O_NOCTTY 00000400 /* not fcntl */ 18#endif 19#ifndef O_TRUNC 20#define O_TRUNC 00001000 /* not fcntl */ 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_DSYNC 29#define O_DSYNC 00010000 /* used to be O_SYNC, see below */ 30#endif 31#ifndef FASYNC 32#define FASYNC 00020000 /* fcntl, for BSD compatibility */ 33#endif 34#ifndef O_DIRECT 35#define O_DIRECT 00040000 /* direct disk access hint */ 36#endif 37#ifndef O_LARGEFILE 38#define O_LARGEFILE 00100000 39#endif 40#ifndef O_DIRECTORY 41#define O_DIRECTORY 00200000 /* must be a directory */ 42#endif 43#ifndef O_NOFOLLOW 44#define O_NOFOLLOW 00400000 /* don't follow links */ 45#endif 46#ifndef O_NOATIME 47#define O_NOATIME 01000000 48#endif 49#ifndef O_CLOEXEC 50#define O_CLOEXEC 02000000 /* set close_on_exec */ 51#endif 52 53/* 54 * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using 55 * the O_SYNC flag. We continue to use the existing numerical value 56 * for O_DSYNC semantics now, but using the correct symbolic name for it. 57 * This new value is used to request true Posix O_SYNC semantics. It is 58 * defined in this strange way to make sure applications compiled against 59 * new headers get at least O_DSYNC semantics on older kernels. 60 * 61 * This has the nice side-effect that we can simply test for O_DSYNC 62 * wherever we do not care if O_DSYNC or O_SYNC is used. 63 * 64 * Note: __O_SYNC must never be used directly. 65 */ 66#ifndef O_SYNC 67#define __O_SYNC 04000000 68#define O_SYNC (__O_SYNC|O_DSYNC) 69#endif 70 71#ifndef O_NDELAY 72#define O_NDELAY O_NONBLOCK 73#endif 74 75#define F_DUPFD 0 /* dup */ 76#define F_GETFD 1 /* get close_on_exec */ 77#define F_SETFD 2 /* set/clear close_on_exec */ 78#define F_GETFL 3 /* get file->f_flags */ 79#define F_SETFL 4 /* set file->f_flags */ 80#ifndef F_GETLK 81#define F_GETLK 5 82#define F_SETLK 6 83#define F_SETLKW 7 84#endif 85#ifndef F_SETOWN 86#define F_SETOWN 8 /* for sockets. */ 87#define F_GETOWN 9 /* for sockets. */ 88#endif 89#ifndef F_SETSIG 90#define F_SETSIG 10 /* for sockets. */ 91#define F_GETSIG 11 /* for sockets. */ 92#endif 93 94#ifndef CONFIG_64BIT 95#ifndef F_GETLK64 96#define F_GETLK64 12 /* using 'struct flock64' */ 97#define F_SETLK64 13 98#define F_SETLKW64 14 99#endif 100#endif 101 102#ifndef F_SETOWN_EX 103#define F_SETOWN_EX 15 104#define F_GETOWN_EX 16 105#endif 106 107#define F_OWNER_TID 0 108#define F_OWNER_PID 1 109#define F_OWNER_PGRP 2 110 111struct f_owner_ex { 112 int type; 113 pid_t pid; 114}; 115 116/* for F_[GET|SET]FL */ 117#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ 118 119/* for posix fcntl() and lockf() */ 120#ifndef F_RDLCK 121#define F_RDLCK 0 122#define F_WRLCK 1 123#define F_UNLCK 2 124#endif 125 126/* for old implementation of bsd flock () */ 127#ifndef F_EXLCK 128#define F_EXLCK 4 /* or 3 */ 129#define F_SHLCK 8 /* or 4 */ 130#endif 131 132/* for leases */ 133#ifndef F_INPROGRESS 134#define F_INPROGRESS 16 135#endif 136 137/* operations for bsd flock(), also used by the kernel implementation */ 138#define LOCK_SH 1 /* shared lock */ 139#define LOCK_EX 2 /* exclusive lock */ 140#define LOCK_NB 4 /* or'd with one of the above to prevent 141 blocking */ 142#define LOCK_UN 8 /* remove lock */ 143 144#define LOCK_MAND 32 /* This is a mandatory flock ... */ 145#define LOCK_READ 64 /* which allows concurrent read operations */ 146#define LOCK_WRITE 128 /* which allows concurrent write operations */ 147#define LOCK_RW 192 /* which allows concurrent read & write ops */ 148 149#define F_LINUX_SPECIFIC_BASE 1024 150 151#ifndef HAVE_ARCH_STRUCT_FLOCK 152#ifndef __ARCH_FLOCK_PAD 153#define __ARCH_FLOCK_PAD 154#endif 155 156struct flock { 157 short l_type; 158 short l_whence; 159 __kernel_off_t l_start; 160 __kernel_off_t l_len; 161 __kernel_pid_t l_pid; 162 __ARCH_FLOCK_PAD 163}; 164#endif 165 166#ifndef CONFIG_64BIT 167 168#ifndef HAVE_ARCH_STRUCT_FLOCK64 169#ifndef __ARCH_FLOCK64_PAD 170#define __ARCH_FLOCK64_PAD 171#endif 172 173struct flock64 { 174 short l_type; 175 short l_whence; 176 __kernel_loff_t l_start; 177 __kernel_loff_t l_len; 178 __kernel_pid_t l_pid; 179 __ARCH_FLOCK64_PAD 180}; 181#endif 182#endif /* !CONFIG_64BIT */ 183 184#endif /* _ASM_GENERIC_FCNTL_H */