[xbuild] Fix bug #671700, resource naming in presence of "Link".
[mono.git] / support / fcntl.c
index 3e0424cb90135a9b70a0697c58dc6c3d70108794..d7e9c481180b18e20420f007737c441cdf06f6bd 100644 (file)
@@ -4,7 +4,7 @@
  * Authors:
  *   Jonathan Pryor (jonpryor@vt.edu)
  *
- * Copyright (C) 2004 Jonathan Pryor
+ * Copyright (C) 2004, 2006 Jonathan Pryor
  */
 
 #ifndef _GNU_SOURCE
 
 G_BEGIN_DECLS
 
-struct Mono_Posix_Flock {
-       gint16    l_type;
-       gint16    l_whence;
-       mph_off_t l_start;
-       mph_off_t l_len;
-       mph_pid_t l_pid;
-};
-
 gint32
 Mono_Posix_Syscall_fcntl (gint32 fd, gint32 cmd)
 {
@@ -74,26 +66,13 @@ Mono_Posix_Syscall_fcntl_lock (gint32 fd, gint32 cmd, struct Mono_Posix_Flock *l
                return -1;
        }
 
-       mph_return_if_off_t_overflow (lock->l_start);
-       mph_return_if_off_t_overflow (lock->l_len);
-
-       if (Mono_Posix_FromLockType (lock->l_type, &lock->l_type) == -1)
+       if (Mono_Posix_FromFlock (lock, &_lock) == -1)
                return -1;
-       _lock.l_type   = lock->l_type;
-       _lock.l_whence = lock->l_whence;
-       _lock.l_start  = lock->l_start;
-       _lock.l_len    = lock->l_len;
-       _lock.l_pid    = lock->l_pid;
 
        r = fcntl (fd, cmd, &_lock);
 
-       if (Mono_Posix_ToLockType (_lock.l_type, &_lock.l_type) == -1)
-               r = -1;
-       lock->l_type   = _lock.l_type;
-       lock->l_whence = _lock.l_whence;
-       lock->l_start  = _lock.l_start;
-       lock->l_len    = _lock.l_len;
-       lock->l_pid    = _lock.l_pid;
+       if (Mono_Posix_ToFlock (&_lock, lock) == -1)
+               return -1;
 
        return r;
 }