1
2
3
4
5
6
7
8#ifndef __ASM_FCNTL_H
9#define __ASM_FCNTL_H
10
11
12
13#define O_ACCMODE 0x0003
14#define O_RDONLY 0x0000
15#define O_WRONLY 0x0001
16#define O_RDWR 0x0002
17#define O_APPEND 0x0008
18#define O_SYNC 0x0010
19#define O_NONBLOCK 0x0080
20#define O_CREAT 0x0100
21#define O_TRUNC 0x0200
22#define O_EXCL 0x0400
23#define O_NOCTTY 0x0800
24#define FASYNC 0x1000
25#define O_LARGEFILE 0x2000
26#define O_DIRECT 0x8000
27#define O_DIRECTORY 0x10000
28#define O_NOFOLLOW 0x20000
29
30#define O_NDELAY O_NONBLOCK
31
32#define F_DUPFD 0
33#define F_GETFD 1
34#define F_SETFD 2
35#define F_GETFL 3
36#define F_SETFL 4
37#define F_GETLK 14
38#define F_SETLK 6
39#define F_SETLKW 7
40
41#define F_SETOWN 24
42#define F_GETOWN 23
43#define F_SETSIG 10
44#define F_GETSIG 11
45
46#define F_GETLK64 33
47#define F_SETLK64 34
48#define F_SETLKW64 35
49
50
51#define FD_CLOEXEC 1
52
53
54#define F_RDLCK 0
55#define F_WRLCK 1
56#define F_UNLCK 2
57
58
59#define F_EXLCK 4
60#define F_SHLCK 8
61
62
63#define F_INPROGRESS 16
64
65
66#define LOCK_SH 1
67#define LOCK_EX 2
68#define LOCK_NB 4
69
70#define LOCK_UN 8
71
72#define LOCK_MAND 32
73#define LOCK_READ 64
74#define LOCK_WRITE 128
75#define LOCK_RW 192
76
77
78
79
80
81
82
83
84typedef struct flock {
85 short l_type;
86 short l_whence;
87 __kernel_off_t l_start;
88 __kernel_off_t l_len;
89 long l_sysid;
90 __kernel_pid_t l_pid;
91 long pad[4];
92} flock_t;
93
94typedef struct flock64 {
95 short l_type;
96 short l_whence;
97 loff_t l_start;
98 loff_t l_len;
99 pid_t l_pid;
100} flock64_t;
101
102#define F_LINUX_SPECIFIC_BASE 1024
103
104#endif
105