diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2013-06-02 10:22:14 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2013-06-02 10:22:14 +0000 |
commit | a24ad2c346471f3066e051459112341c02a039fc (patch) | |
tree | 6446521c7ebac7e27dcd033815f6a8b1a65da249 /winsup/cygwin/fhandler.h | |
parent | fa35814af1fe24f596142c993f050f5eb0a74914 (diff) | |
download | newlib-a24ad2c346471f3066e051459112341c02a039fc.zip newlib-a24ad2c346471f3066e051459112341c02a039fc.tar.gz newlib-a24ad2c346471f3066e051459112341c02a039fc.tar.bz2 |
* autoload.cc (CancelSynchronousIo): Define.
* fcntl.cc (fcntl64): Drop handling of locking commands.
* fhandler.h (class fhandler_disk_file): Add mandatory_locking.
(fhandler_disk_file::fcntl): Declare.
(fhandler_disk_file::mand_lock): Declare.
* fhandler_disk_file.cc (fhandler_disk_file::fhandler_disk_file):
Initialize mandatory_locking.
(fhandler_disk_file::fcntl): New method. Handle F_LCK_MANDATORY and
locking commands.
(fhandler_disk_file::dup): Duplicate mandatory_locking. Fix a bug
when duplicating prw_handle failed.
(fhandler_disk_file::fixup_after_fork): Reset mandatory_locking.
* flock.cc (fhandler_disk_file::lock): Add comment.
(struct lock_parms): New struct to pass parameters to blocking_lock_thr
thread function.
(blocking_lock_thr): New thread function.
(fhandler_disk_file::mand_lock): New methof implementing mandatory
locking with Windows semantics.
* ntdll.h (NtLockFile): Declare.
(NtUnlockFile): Declare.
* include/fcntl.h: Fix a comment.
(F_LCK_MANDATORY): Define. Add lengthy comment to explain.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index e76f67e..76e0ea7 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -963,6 +963,7 @@ class fhandler_dev_tape: public fhandler_dev_raw class fhandler_disk_file: public fhandler_base { HANDLE prw_handle; + bool mandatory_locking; int __reg3 readdir_helper (DIR *, dirent *, DWORD, DWORD, PUNICODE_STRING fname); int prw_open (bool); @@ -973,9 +974,11 @@ class fhandler_disk_file: public fhandler_base int open (int flags, mode_t mode); int close (); + int fcntl (int cmd, intptr_t); int dup (fhandler_base *child, int); void fixup_after_fork (HANDLE parent); int lock (int, struct flock *); + int mand_lock (int, struct flock *); bool isdevice () const { return false; } int __reg2 fstat (struct stat *buf); int __reg1 fchmod (mode_t mode); |