From owner-p4-projects@FreeBSD.ORG Thu Sep 17 18:50:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F198C106568D; Thu, 17 Sep 2009 18:50:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B636310656A4 for ; Thu, 17 Sep 2009 18:50:52 +0000 (UTC) (envelope-from jkim@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8C7BE8FC17 for ; Thu, 17 Sep 2009 18:50:52 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n8HIoqdi029471 for ; Thu, 17 Sep 2009 18:50:52 GMT (envelope-from jkim@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n8HIoqeV029469 for perforce@freebsd.org; Thu, 17 Sep 2009 18:50:52 GMT (envelope-from jkim@freebsd.org) Date: Thu, 17 Sep 2009 18:50:52 GMT Message-Id: <200909171850.n8HIoqeV029469@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jkim@freebsd.org using -f From: Jung-uk Kim To: Perforce Change Reviews Cc: Subject: PERFORCE change 168632 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Sep 2009 18:50:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=168632 Change 168632 by jkim@jkim_hammer on 2009/09/17 18:50:49 Add new fcntl(2) commands. Tested on 7.2 and -CURRENT. Affected files ... .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#40 edit .. //depot/projects/valgrind/include/vki/vki-freebsd.h#17 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#40 (text+ko) ==== @@ -3064,19 +3064,35 @@ case VKI_F_SETFD: case VKI_F_SETFL: case VKI_F_SETOWN: + case VKI_F_DUP2FD: PRINT("sys_fcntl[ARG3=='arg'] ( %ld, %ld, %ld )", ARG1,ARG2,ARG3); PRE_REG_READ3(long, "fcntl", unsigned int, fd, unsigned int, cmd, unsigned long, arg); break; + // These ones use ARG3 as "lock" - obsolete. + case VKI_F_OSETLKW: + *flags |= SfMayBlock; + /* FALLTHROUGH */ + case VKI_F_OGETLK: + case VKI_F_OSETLK: + PRINT("sys_fcntl[ARG3=='lock'] ( %ld, %ld, %#lx )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "fcntl", + unsigned int, fd, unsigned int, cmd, + struct oflock *, lock); + break; + // These ones use ARG3 as "lock". + case VKI_F_SETLKW: + *flags |= SfMayBlock; + /* FALLTHROUGH */ case VKI_F_GETLK: case VKI_F_SETLK: - case VKI_F_SETLKW: + case VKI_F_SETLK_REMOTE: PRINT("sys_fcntl[ARG3=='lock'] ( %ld, %ld, %#lx )", ARG1,ARG2,ARG3); PRE_REG_READ3(long, "fcntl", unsigned int, fd, unsigned int, cmd, - struct flock64 *, lock); + struct flock *, lock); break; default: @@ -3084,8 +3100,6 @@ I_die_here; break; } - if (ARG2 == VKI_F_SETLKW) - *flags |= SfMayBlock; } POST(sys_fcntl) ==== //depot/projects/valgrind/include/vki/vki-freebsd.h#17 (text+ko) ==== @@ -1424,9 +1424,14 @@ #define VKI_F_SETFL 4 /* set file->f_flags */ #define VKI_F_SETOWN 5 /* for sockets. */ #define VKI_F_GETOWN 6 /* for sockets. */ -#define VKI_F_GETLK 7 -#define VKI_F_SETLK 8 -#define VKI_F_SETLKW 9 +#define VKI_F_OGETLK 7 /* get record locking information */ +#define VKI_F_OSETLK 8 /* set record locking information */ +#define VKI_F_OSETLKW 9 /* F_SETLK; wait if blocked */ +#define VKI_F_DUP2FD 10 /* duplicate file descriptor to arg */ +#define VKI_F_GETLK 11 /* get record locking information */ +#define VKI_F_SETLK 12 /* set record locking information */ +#define VKI_F_SETLKW 13 /* F_SETLK; wait if blocked */ +#define VKI_F_SETLK_REMOTE 14 /* debugging support for remote locks */ /* for F_[GET|SET]FL */ #define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */