Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/include/fcntl.h')
-rw-r--r--winsup/cygwin/include/fcntl.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/winsup/cygwin/include/fcntl.h b/winsup/cygwin/include/fcntl.h
index 9c3ddf926..fe8a1fc42 100644
--- a/winsup/cygwin/include/fcntl.h
+++ b/winsup/cygwin/include/fcntl.h
@@ -1,6 +1,6 @@
/* fcntl.h
- Copyright 1996, 1998, 2000, 2001, 2005, 2006, 2009, 2010 Red Hat, Inc.
+ Copyright 1996, 1998, 2000, 2001, 2005, 2006, 2009, 2010, 2013 Red Hat, Inc.
This file is part of Cygwin.
@@ -14,12 +14,29 @@ details. */
#include <sys/fcntl.h>
#define O_NDELAY _FNDELAY
-/* sys/fcntl defines values up to 0x40000 (O_NOINHERIT). */
+/* sys/_default_fcntl.h defines values up to 0x40000 (O_NOINHERIT). */
#define _FDIRECT 0x80000
#define _FNOFOLLOW 0x100000
#define _FDIRECTORY 0x200000
#define _FEXECSRCH 0x400000
+/* F_LCK_MANDATORY: Request mandatory locks for this file descriptor.
+
+ Cygwin extension to fcntl file locking mechanism. By default, fcntl file
+ locks are advisory locks. This works nicely as long as only Cygwin
+ processes interact. If you have the requirement to interact with native
+ Windows applications which use Windows mandatory file locking, your have
+ to use mandatory locking as well. The command
+
+ fcntl (fd, F_LCK_MANDATORY, 1)
+
+ switches subsequent F_GETLK, F_SETLK, F_SETLKW calls to mandatory locking
+ for this file descriptor and subsequently duplicated ones WITHIN THE SAME
+ PROCESS. Note that mandatory locks are NOT inherited by child processes,
+ nor do they survive an execve call. This fully corresponds to Windows
+ mandatory locking semantics. */
+#define F_LCK_MANDATORY 0x99
+
/* POSIX-1.2008 requires this flag and allows to set it to 0 if its
functionality is not required. */
#define O_TTY_INIT 0