Date: Thu, 17 Sep 2009 18:50:52 GMT From: Jung-uk Kim <jkim@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 168632 for review Message-ID: <200909171850.n8HIoqeV029469@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909171850.n8HIoqeV029469>