Add SIOCGSTAMPNS support. Fixes #188530.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9502 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
index e967393..df97cd2 100644
--- a/coregrind/m_syswrap/syswrap-linux.c
+++ b/coregrind/m_syswrap/syswrap-linux.c
@@ -3526,6 +3526,9 @@
    case VKI_SIOCGSTAMP:
       PRE_MEM_WRITE( "ioctl(SIOCGSTAMP)", ARG3, sizeof(struct vki_timeval));
       break;
+   case VKI_SIOCGSTAMPNS:
+      PRE_MEM_WRITE( "ioctl(SIOCGSTAMPNS)", ARG3, sizeof(struct vki_timespec));
+      break;
       /* SIOCOUTQ is an ioctl that, when called on a socket, returns
 	 the number of bytes currently in that socket's send buffer.
 	 It writes this value as an int to the memory location
@@ -4569,6 +4572,9 @@
    case VKI_SIOCGSTAMP:
       POST_MEM_WRITE( ARG3, sizeof(struct vki_timeval) );
       break;
+   case VKI_SIOCGSTAMPNS:
+      POST_MEM_WRITE( ARG3, sizeof(struct vki_timespec) );
+      break;
       /* SIOCOUTQ is an ioctl that, when called on a socket, returns
 	 the number of bytes currently in that socket's send buffer.
 	 It writes this value as an int to the memory location
diff --git a/include/vki/vki-amd64-linux.h b/include/vki/vki-amd64-linux.h
index d9be99e..50e7dcb 100644
--- a/include/vki/vki-amd64-linux.h
+++ b/include/vki/vki-amd64-linux.h
@@ -281,9 +281,10 @@
 // From linux-2.6.9/include/asm-x86_64/sockios.h
 //----------------------------------------------------------------------
 
-#define VKI_SIOCSPGRP	0x8902
-#define VKI_SIOCGPGRP	0x8904
-#define VKI_SIOCGSTAMP	0x8906		/* Get stamp */
+#define VKI_SIOCSPGRP		0x8902
+#define VKI_SIOCGPGRP		0x8904
+#define VKI_SIOCGSTAMP		0x8906		/* Get stamp (timeval) */
+#define VKI_SIOCGSTAMPNS	0x8907		/* Get stamp (timespec) */
 
 //----------------------------------------------------------------------
 // From linux-2.6.9/include/asm-x86_64/stat.h
diff --git a/include/vki/vki-ppc32-linux.h b/include/vki/vki-ppc32-linux.h
index af5fc72..074a8f8 100644
--- a/include/vki/vki-ppc32-linux.h
+++ b/include/vki/vki-ppc32-linux.h
@@ -342,9 +342,10 @@
 #define VKI_SOL_SOCKET	1
 #define VKI_SO_TYPE	3
 
-#define VKI_SIOCSPGRP	0x8902
-#define VKI_SIOCGPGRP	0x8904
-#define VKI_SIOCGSTAMP	0x8906          /* Get stamp */
+#define VKI_SIOCSPGRP		0x8902
+#define VKI_SIOCGPGRP		0x8904
+#define VKI_SIOCGSTAMP		0x8906          /* Get stamp (timeval) */
+#define VKI_SIOCGSTAMPNS	0x8907          /* Get stamp (timespec) */
 
 //----------------------------------------------------------------------
 // From linux-2.6.10/include/asm-ppc/stat.h
diff --git a/include/vki/vki-ppc64-linux.h b/include/vki/vki-ppc64-linux.h
index c2a8d58..063fc55 100644
--- a/include/vki/vki-ppc64-linux.h
+++ b/include/vki/vki-ppc64-linux.h
@@ -404,7 +404,8 @@
 
 #define VKI_SIOCSPGRP       0x8902
 #define VKI_SIOCGPGRP       0x8904
-#define VKI_SIOCGSTAMP      0x8906          /* Get stamp */
+#define VKI_SIOCGSTAMP      0x8906          /* Get stamp (timeval) */
+#define VKI_SIOCGSTAMPNS    0x8907          /* Get stamp (timespec) */
 
 //----------------------------------------------------------------------
 // From linux-2.6.13/include/asm-ppc64/stat.h
diff --git a/include/vki/vki-x86-linux.h b/include/vki/vki-x86-linux.h
index 68e80f5..13a4e4e 100644
--- a/include/vki/vki-x86-linux.h
+++ b/include/vki/vki-x86-linux.h
@@ -318,9 +318,10 @@
 // From linux-2.6.8.1/include/asm-i386/sockios.h
 //----------------------------------------------------------------------
 
-#define VKI_SIOCSPGRP	0x8902
-#define VKI_SIOCGPGRP	0x8904
-#define VKI_SIOCGSTAMP	0x8906		/* Get stamp */
+#define VKI_SIOCSPGRP		0x8902
+#define VKI_SIOCGPGRP		0x8904
+#define VKI_SIOCGSTAMP		0x8906		/* Get stamp (timeval) */
+#define VKI_SIOCGSTAMPNS	0x8907		/* Get stamp (timespec) */
 
 //----------------------------------------------------------------------
 // From linux-2.6.8.1/include/asm-i386/stat.h