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:
authorCorinna Vinschen <corinna@vinschen.de>2008-04-01 14:22:33 +0400
committerCorinna Vinschen <corinna@vinschen.de>2008-04-01 14:22:33 +0400
commitfabfb1a1ee52bc5ff248e708de5e7dc56cd6a170 (patch)
tree2d471f2e6ebf7757d28a889cec5ec987fdb4e00a /winsup/cygwin/syscalls.cc
parent636c94d8539476b691bdfff748282027a970725b (diff)
Throughout, call fcntl64 instead of fcntl or fcntl_worker.
* fcntl.cc (fcntl_worker): Remove. (fcntl64): Add fault handler. Move fcntl_worker stuff here. Add case for locking and call fhandler's lock method directly. Make sure that F_FLOCK flag isn't set in lock call. (_fcntl): Add fault handler. * fhandler.cc (fhandler_base::fcntl): Drop lock cases. * flock.cc (flock): Add fault handler. Simplify code. Call fhandlers lock method directly instead of fcntl_worker. Add debug output. (lockf): Add fault handler. Call fhandlers lock method directly instead of fcntl_worker. Add debug output. * winsup.h (fcntl_worker): Drop declaration. (fcntl64): Declare.
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r--winsup/cygwin/syscalls.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index f7122dcb9..06c74a209 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -2940,12 +2940,12 @@ locked_append (int fd, const void * buf, size_t size)
do
if ((lock_buffer.l_start = lseek64 (fd, 0, SEEK_END)) != (_off64_t) -1
- && fcntl_worker (fd, F_SETLKW, &lock_buffer) != -1)
+ && fcntl64 (fd, F_SETLKW, &lock_buffer) != -1)
{
if (lseek64 (fd, 0, SEEK_END) != (_off64_t) -1)
write (fd, buf, size);
lock_buffer.l_type = F_UNLCK;
- fcntl_worker (fd, F_SETLK, &lock_buffer);
+ fcntl64 (fd, F_SETLK, &lock_buffer);
break;
}
while (count++ < 1000
@@ -3452,7 +3452,7 @@ popen (const char *command, const char *in_type)
}
FILE *fp = fdopen (fd, in_type);
- fcntl (fd, F_SETFD, fcntl (fd, F_GETFD, 0) | FD_CLOEXEC);
+ fcntl64 (fd, F_SETFD, fcntl64 (fd, F_GETFD, 0) | FD_CLOEXEC);
if (!fp)
goto err;
@@ -3467,11 +3467,11 @@ popen (const char *command, const char *in_type)
{
lock_process now;
- int state = fcntl (stdwhat, F_GETFD, 0);
- fcntl (stdwhat, F_SETFD, state | FD_CLOEXEC);
+ int state = fcntl64 (stdwhat, F_GETFD, 0);
+ fcntl64 (stdwhat, F_SETFD, state | FD_CLOEXEC);
pid = spawn_guts ("/bin/sh", argv, cur_environ (), _P_NOWAIT,
__stdin, __stdout);
- fcntl (stdwhat, F_SETFD, state);
+ fcntl64 (stdwhat, F_SETFD, state);
}
if (pid < 0)