Skip site navigation (1)Skip section navigation (2)
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>