1/*
2 * This header was generated from the Linux kernel headers by update_headers.py,
3 * to provide necessary information from kernel to userspace, such as constants,
4 * structures, and macros, and thus, contains no copyrightable information.
5 */
6#ifndef _ASM_GENERIC_FCNTL_H
7#define _ASM_GENERIC_FCNTL_H
8#include <linux/types.h>
9#define O_ACCMODE	00000003
10#define O_RDONLY	00000000
11#define O_WRONLY	00000001
12#define O_RDWR		00000002
13#ifndef O_CREAT
14#define O_CREAT		00000100
15#endif
16#ifndef O_EXCL
17#define O_EXCL		00000200
18#endif
19#ifndef O_NOCTTY
20#define O_NOCTTY	00000400
21#endif
22#ifndef O_TRUNC
23#define O_TRUNC		00001000
24#endif
25#ifndef O_APPEND
26#define O_APPEND	00002000
27#endif
28#ifndef O_NONBLOCK
29#define O_NONBLOCK	00004000
30#endif
31#ifndef O_DSYNC
32#define O_DSYNC		00010000
33#endif
34#ifndef FASYNC
35#define FASYNC		00020000
36#endif
37#ifndef O_DIRECT
38#define O_DIRECT	00040000
39#endif
40#ifndef O_LARGEFILE
41#define O_LARGEFILE	00100000
42#endif
43#ifndef O_DIRECTORY
44#define O_DIRECTORY	00200000
45#endif
46#ifndef O_NOFOLLOW
47#define O_NOFOLLOW	00400000
48#endif
49#ifndef O_NOATIME
50#define O_NOATIME	01000000
51#endif
52#ifndef O_CLOEXEC
53#define O_CLOEXEC	02000000
54#endif
55#ifndef O_SYNC
56#define __O_SYNC	04000000
57#define O_SYNC		(__O_SYNC|O_DSYNC)
58#endif
59#ifndef O_PATH
60#define O_PATH		010000000
61#endif
62#ifndef __O_TMPFILE
63#define __O_TMPFILE	020000000
64#endif
65#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
66#define O_TMPFILE_MASK (__O_TMPFILE | O_DIRECTORY | O_CREAT)
67#ifndef O_NDELAY
68#define O_NDELAY	O_NONBLOCK
69#endif
70#define F_DUPFD		0
71#define F_GETFD		1
72#define F_SETFD		2
73#define F_GETFL		3
74#define F_SETFL		4
75#ifndef F_GETLK
76#define F_GETLK		5
77#define F_SETLK		6
78#define F_SETLKW	7
79#endif
80#ifndef F_SETOWN
81#define F_SETOWN	8
82#define F_GETOWN	9
83#endif
84#ifndef F_SETSIG
85#define F_SETSIG	10
86#define F_GETSIG	11
87#endif
88#ifndef __LP64__
89#ifndef F_GETLK64
90#define F_GETLK64	12
91#define F_SETLK64	13
92#define F_SETLKW64	14
93#endif
94#endif
95#ifndef F_SETOWN_EX
96#define F_SETOWN_EX	15
97#define F_GETOWN_EX	16
98#endif
99#ifndef F_GETOWNER_UIDS
100#define F_GETOWNER_UIDS	17
101#endif
102#define F_OFD_GETLK	36
103#define F_OFD_SETLK	37
104#define F_OFD_SETLKW	38
105#define F_OWNER_TID	0
106#define F_OWNER_PID	1
107#define F_OWNER_PGRP	2
108struct f_owner_ex {
109	int	type;
110	__kernel_pid_t	pid;
111};
112#define FD_CLOEXEC	1
113#ifndef F_RDLCK
114#define F_RDLCK		0
115#define F_WRLCK		1
116#define F_UNLCK		2
117#endif
118#ifndef F_EXLCK
119#define F_EXLCK		4
120#define F_SHLCK		8
121#endif
122#define LOCK_SH		1
123#define LOCK_EX		2
124#define LOCK_NB		4
125#define LOCK_UN		8
126#define LOCK_MAND	32
127#define LOCK_READ	64
128#define LOCK_WRITE	128
129#define LOCK_RW		192
130#define F_LINUX_SPECIFIC_BASE	1024
131#ifndef HAVE_ARCH_STRUCT_FLOCK
132#ifndef __ARCH_FLOCK_PAD
133#define __ARCH_FLOCK_PAD
134#endif
135struct flock {
136	short	l_type;
137	short	l_whence;
138	__kernel_off_t	l_start;
139	__kernel_off_t	l_len;
140	__kernel_pid_t	l_pid;
141	__ARCH_FLOCK_PAD
142};
143#endif
144#ifndef HAVE_ARCH_STRUCT_FLOCK64
145#ifndef __ARCH_FLOCK64_PAD
146#define __ARCH_FLOCK64_PAD
147#endif
148struct flock64 {
149	short  l_type;
150	short  l_whence;
151	__kernel_loff_t l_start;
152	__kernel_loff_t l_len;
153	__kernel_pid_t  l_pid;
154	__ARCH_FLOCK64_PAD
155};
156#endif
157#endif
158