|
From: <sv...@va...> - 2013-01-14 22:14:30
|
tom 2013-01-14 22:14:21 +0000 (Mon, 14 Jan 2013)
New Revision: 13229
Log:
Test file mode correctly in vmsplice wrapper.
Modified files:
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/include/vki/vki-amd64-linux.h
trunk/include/vki/vki-arm-linux.h
trunk/include/vki/vki-mips32-linux.h
trunk/include/vki/vki-ppc32-linux.h
trunk/include/vki/vki-ppc64-linux.h
trunk/include/vki/vki-x86-linux.h
Modified: trunk/include/vki/vki-arm-linux.h (+1 -0)
===================================================================
--- trunk/include/vki/vki-arm-linux.h 2013-01-14 09:48:49 +00:00 (rev 13228)
+++ trunk/include/vki/vki-arm-linux.h 2013-01-14 22:14:21 +00:00 (rev 13229)
@@ -240,6 +240,7 @@
// From linux-2.6.8.1/include/asm-i386/fcntl.h
//----------------------------------------------------------------------
+#define VKI_O_ACCMODE 03
#define VKI_O_RDONLY 00
#define VKI_O_WRONLY 01
#define VKI_O_RDWR 02
Modified: trunk/include/vki/vki-ppc64-linux.h (+1 -0)
===================================================================
--- trunk/include/vki/vki-ppc64-linux.h 2013-01-14 09:48:49 +00:00 (rev 13228)
+++ trunk/include/vki/vki-ppc64-linux.h 2013-01-14 22:14:21 +00:00 (rev 13229)
@@ -360,6 +360,7 @@
// From linux-2.6.13/include/asm-ppc64/fcntl.h
//----------------------------------------------------------------------
+#define VKI_O_ACCMODE 03
#define VKI_O_RDONLY 00
#define VKI_O_WRONLY 01
#define VKI_O_RDWR 02
Modified: trunk/include/vki/vki-mips32-linux.h (+1 -0)
===================================================================
--- trunk/include/vki/vki-mips32-linux.h 2013-01-14 09:48:49 +00:00 (rev 13228)
+++ trunk/include/vki/vki-mips32-linux.h 2013-01-14 22:14:21 +00:00 (rev 13229)
@@ -309,6 +309,7 @@
// From linux-2.6.35.5/include/asm-mips/fcntl.h
//----------------------------------------------------------------------
+#define VKI_O_ACCMODE 03
#define VKI_O_RDONLY 00
#define VKI_O_WRONLY 01
#define VKI_O_RDWR 02
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c (+4 -4)
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2013-01-14 09:48:49 +00:00 (rev 13228)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2013-01-14 22:14:21 +00:00 (rev 13229)
@@ -4494,10 +4494,10 @@
for (iov = (struct vki_iovec *)ARG2;
iov < (struct vki_iovec *)ARG2 + ARG3; iov++)
{
- if ((fdfl & (VKI_O_WRONLY|VKI_O_RDWR)) != 0)
+ if ((fdfl & VKI_O_ACCMODE) == VKI_O_RDONLY)
+ PRE_MEM_WRITE( "vmsplice(iov[...])", (Addr)iov->iov_base, iov->iov_len );
+ else
PRE_MEM_READ( "vmsplice(iov[...])", (Addr)iov->iov_base, iov->iov_len );
- else if ((fdfl & VKI_O_RDONLY) != 0)
- PRE_MEM_WRITE( "vmsplice(iov[...])", (Addr)iov->iov_base, iov->iov_len );
}
}
}
@@ -4508,7 +4508,7 @@
if (RES > 0) {
Int fdfl = VG_(fcntl)(ARG1, VKI_F_GETFL, 0);
vg_assert(fdfl >= 0);
- if ((fdfl & VKI_O_RDONLY) != 0)
+ if ((fdfl & VKI_O_ACCMODE) == VKI_O_RDONLY)
{
const struct vki_iovec *iov;
for (iov = (struct vki_iovec *)ARG2;
Modified: trunk/include/vki/vki-x86-linux.h (+1 -0)
===================================================================
--- trunk/include/vki/vki-x86-linux.h 2013-01-14 09:48:49 +00:00 (rev 13228)
+++ trunk/include/vki/vki-x86-linux.h 2013-01-14 22:14:21 +00:00 (rev 13229)
@@ -278,6 +278,7 @@
// From linux-2.6.8.1/include/asm-i386/fcntl.h
//----------------------------------------------------------------------
+#define VKI_O_ACCMODE 03
#define VKI_O_RDONLY 00
#define VKI_O_WRONLY 01
#define VKI_O_RDWR 02
Modified: trunk/include/vki/vki-amd64-linux.h (+1 -0)
===================================================================
--- trunk/include/vki/vki-amd64-linux.h 2013-01-14 09:48:49 +00:00 (rev 13228)
+++ trunk/include/vki/vki-amd64-linux.h 2013-01-14 22:14:21 +00:00 (rev 13229)
@@ -242,6 +242,7 @@
// From linux-2.6.9/include/asm-x86_64/fcntl.h
//----------------------------------------------------------------------
+#define VKI_O_ACCMODE 03
#define VKI_O_RDONLY 00
#define VKI_O_WRONLY 01
#define VKI_O_RDWR 02
Modified: trunk/include/vki/vki-ppc32-linux.h (+1 -0)
===================================================================
--- trunk/include/vki/vki-ppc32-linux.h 2013-01-14 09:48:49 +00:00 (rev 13228)
+++ trunk/include/vki/vki-ppc32-linux.h 2013-01-14 22:14:21 +00:00 (rev 13229)
@@ -307,6 +307,7 @@
// From linux-2.6.9/include/asm-ppc/fcntl.h
//----------------------------------------------------------------------
+#define VKI_O_ACCMODE 03
#define VKI_O_RDONLY 00
#define VKI_O_WRONLY 01
#define VKI_O_RDWR 02
|