PERFORCE change 168632 for review
Jung-uk Kim
jkim at FreeBSD.org
Thu Sep 17 18:50:53 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=168632
Change 168632 by jkim at 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 */
More information about the p4-projects
mailing list