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