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