X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=support%2Ffcntl.c;h=d7e9c481180b18e20420f007737c441cdf06f6bd;hb=1288c84cd73c2aac7bc61f4eeb55c6e08c04c29d;hp=3e0424cb90135a9b70a0697c58dc6c3d70108794;hpb=5bbfa8860b090e465a3aa45edeb9c94481ef1a22;p=mono.git diff --git a/support/fcntl.c b/support/fcntl.c index 3e0424cb901..d7e9c481180 100644 --- a/support/fcntl.c +++ b/support/fcntl.c @@ -4,7 +4,7 @@ * Authors: * Jonathan Pryor (jonpryor@vt.edu) * - * Copyright (C) 2004 Jonathan Pryor + * Copyright (C) 2004, 2006 Jonathan Pryor */ #ifndef _GNU_SOURCE @@ -22,14 +22,6 @@ 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; }