OSDN Git Service

* fcntl.cc (fcntl_worker): Remove static storage class.
authorcorinna <corinna>
Wed, 3 Dec 2003 09:55:41 +0000 (09:55 +0000)
committercorinna <corinna>
Wed, 3 Dec 2003 09:55:41 +0000 (09:55 +0000)
* flock.cc (flock): Use struct __flock64. Call fcntl_worker.
Use Cygwin errno functions instead of accessing errno directly.
* winsup.h: Declare fcntl_worker.

winsup/cygwin/ChangeLog
winsup/cygwin/fcntl.cc
winsup/cygwin/flock.cc
winsup/cygwin/winsup.h

index 966a812..4113bc6 100644 (file)
@@ -1,6 +1,13 @@
 2003-12-03  Corinna Vinschen  <corinna@vinschen.de>
 
-       * fcntl.cc (_fcntl): Whitespace cleanup.
+       * fcntl.cc (fcntl_worker): Remove static storage class.
+       * flock.cc (flock): Use struct __flock64. Call fcntl_worker.
+       Use Cygwin errno functions instead of accessing errno directly.
+       * winsup.h: Declare fcntl_worker.
+
+2003-12-03  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fcntl.cc: Whitespace cleanup.
 
 2003-12-03  Christopher Faylor  <cgf@redhat.com>
 
index a492bf9..d81126f 100644 (file)
@@ -19,7 +19,7 @@ details. */
 #include "cygheap.h"
 #include "thread.h"
 
-static int
+int
 fcntl_worker (int fd, int cmd, void *arg)
 {
   int res;
index 09ea2b6..b15962d 100644 (file)
@@ -15,9 +15,9 @@
    Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
    details. */
 
+#include "winsup.h"
+#include "cygerrno.h"
 #include <sys/file.h>
-#include <sys/types.h>
-#include <errno.h>
 #include <fcntl.h>
 #include <unistd.h>
 
@@ -25,7 +25,7 @@ int
 flock (int fd, int operation)
 {
   int i, cmd;
-  struct flock l = { 0, 0, 0, 0, 0 };
+  struct __flock64 l = { 0, 0, 0, 0, 0 };
   if (operation & LOCK_NB)
     {
       cmd = F_SETLK;
@@ -39,40 +39,40 @@ flock (int fd, int operation)
     {
     case LOCK_EX:
       l.l_type = F_WRLCK;
-      i = fcntl (fd, cmd, &l);
+      i = fcntl_worker (fd, cmd, &l);
       if (i == -1)
        {
-         if ((errno == EAGAIN) || (errno == EACCES))
+         if ((get_errno () == EAGAIN) || (get_errno () == EACCES))
            {
-             errno = EWOULDBLOCK;
+             set_errno (EWOULDBLOCK);
            }
        }
       break;
     case LOCK_SH:
       l.l_type = F_RDLCK;
-      i = fcntl (fd, cmd, &l);
+      i = fcntl_worker (fd, cmd, &l);
       if (i == -1)
        {
-         if ((errno == EAGAIN) || (errno == EACCES))
+         if ((get_errno () == EAGAIN) || (get_errno () == EACCES))
            {
-             errno = EWOULDBLOCK;
+             set_errno (EWOULDBLOCK);
            }
        }
       break;
     case LOCK_UN:
       l.l_type = F_UNLCK;
-      i = fcntl (fd, cmd, &l);
+      i = fcntl_worker (fd, cmd, &l);
       if (i == -1)
        {
-         if ((errno == EAGAIN) || (errno == EACCES))
+         if ((get_errno () == EAGAIN) || (get_errno () == EACCES))
            {
-             errno = EWOULDBLOCK;
+             set_errno (EWOULDBLOCK);
            }
        }
       break;
     default:
       i = -1;
-      errno = EINVAL;
+      set_errno (EINVAL);
       break;
     }
   return i;
index 937b460..26be3d0 100644 (file)
@@ -298,6 +298,8 @@ int symlink_worker (const char *, const char *, bool, bool)
 class path_conv;
 int access_worker (path_conv&, int) __attribute__ ((regparm (2)));
 
+int fcntl_worker (int fd, int cmd, void *arg);
+
 extern "C" int low_priority_sleep (DWORD) __attribute__ ((regparm (1)));
 #define SLEEP_0_STAY_LOW INFINITE