for (iov = (struct vki_iovec *)ARG2;
iov < (struct vki_iovec *)ARG2 + ARG3; iov++)
{
- if ((fdfl & (VKI_O_WRONLY|VKI_O_RDWR)) != 0)
- PRE_MEM_READ( "vmsplice(iov[...])", (Addr)iov->iov_base, iov->iov_len );
- else if ((fdfl & VKI_O_RDONLY) != 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 );
}
}
}
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;
// 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
// 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