[PATCH] Clean up the open flags
[linux-2.6.git] / include / asm-generic / fcntl.h
1 #ifndef _ASM_GENERIC_FCNTL_H
2 #define _ASM_GENERIC_FCNTL_H
3
4 /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
5    located on an ext2 file system */
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_SYNC
29 #define O_SYNC          00010000
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_NDELAY
50 #define O_NDELAY        O_NONBLOCK
51 #endif
52
53 #define F_DUPFD         0       /* dup */
54 #define F_GETFD         1       /* get close_on_exec */
55 #define F_SETFD         2       /* set/clear close_on_exec */
56 #define F_GETFL         3       /* get file->f_flags */
57 #define F_SETFL         4       /* set file->f_flags */
58
59 /* for F_[GET|SET]FL */
60 #define FD_CLOEXEC      1       /* actually anything with low bit set goes */
61
62 /* operations for bsd flock(), also used by the kernel implementation */
63 #define LOCK_SH         1       /* shared lock */
64 #define LOCK_EX         2       /* exclusive lock */
65 #define LOCK_NB         4       /* or'd with one of the above to prevent
66                                    blocking */
67 #define LOCK_UN         8       /* remove lock */
68
69 #define LOCK_MAND       32      /* This is a mandatory flock ... */
70 #define LOCK_READ       64      /* which allows concurrent read operations */
71 #define LOCK_WRITE      128     /* which allows concurrent write operations */
72 #define LOCK_RW         192     /* which allows concurrent read & write ops */
73
74 #define F_LINUX_SPECIFIC_BASE   1024
75
76 #endif /* _ASM_GENERIC_FCNTL_H */