From: Tom Hughes Date: Thu, 26 Jun 2014 13:14:56 +0000 (+0000) Subject: Add SIOCATMARK ioctl support. X-Git-Tag: svn/VALGRIND_3_10_0~325 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=13c65e031d57ef0e74b48fd74fd6bf413aaa2288;p=thirdparty%2Fvalgrind.git Add SIOCATMARK ioctl support. Patch from Austin English via BZ#335441. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14112 --- diff --git a/NEWS b/NEWS index 22e6250393..5714944cbd 100644 --- a/NEWS +++ b/NEWS @@ -165,6 +165,7 @@ where XXXXXX is the bug number as listed below. 335155 vgdb, fix error print statement. 335262 arm64: movi 8bit version is not supported 335263 arm64: dmb instruction is not implemented +335441 unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind 335496 arm64: sbc/abc instructions are not implemented n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling n-i-bz s390x: Fix memory corruption for multithreaded applications diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index ed10584298..48b437e98b 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -6038,6 +6038,10 @@ PRE(sys_ioctl) //tst->sys_flags &= ~SfMayBlock; break; + case VKI_SIOCATMARK: + PRE_MEM_READ( "ioctl(SIOCATMARK)", ARG3, sizeof(int) ); + break; + /* linux/soundcard interface (OSS) */ case VKI_SNDCTL_SEQ_GETOUTCOUNT: case VKI_SNDCTL_SEQ_GETINCOUNT: @@ -7414,6 +7418,10 @@ POST(sys_ioctl) case VKI_SIOCSPGRP: break; + case VKI_SIOCATMARK: + POST_MEM_WRITE(ARG3, sizeof(int)); + break; + /* linux/soundcard interface (OSS) */ case VKI_SNDCTL_SEQ_GETOUTCOUNT: case VKI_SNDCTL_SEQ_GETINCOUNT: diff --git a/docs/internals/3_9_BUGSTATUS.txt b/docs/internals/3_9_BUGSTATUS.txt index d972bae053..ca99af932f 100644 --- a/docs/internals/3_9_BUGSTATUS.txt +++ b/docs/internals/3_9_BUGSTATUS.txt @@ -179,7 +179,6 @@ For bugs reported before this time, see 3_8_BUGSTATUS.txt 334834 PPC64 Little Endian support, patch 2 334836 PPC64 Little Endian support, patch 3 testcase fixes 335353 expected output of exp-sgcheck/tests/hackedbz2 mismatch with gcc 4.8.1 -335441 unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind (patch) 249435 Analyzing wine programs with callgrind triggers a crash (NEEDS CLOSE) 335563 wine's kernel32/thread test fails under valgrind 335618 arm(thumb): unhanded instruction: mov.w rN, pc/sp diff --git a/include/vki/vki-amd64-linux.h b/include/vki/vki-amd64-linux.h index 273b8b548b..fb65e03a80 100644 --- a/include/vki/vki-amd64-linux.h +++ b/include/vki/vki-amd64-linux.h @@ -311,6 +311,7 @@ struct vki_f_owner_ex { #define VKI_SIOCSPGRP 0x8902 #define VKI_SIOCGPGRP 0x8904 +#define VKI_SIOCATMARK 0x8905 #define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ #define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ diff --git a/include/vki/vki-arm-linux.h b/include/vki/vki-arm-linux.h index 84e3a2cd86..eb12f2dbf0 100644 --- a/include/vki/vki-arm-linux.h +++ b/include/vki/vki-arm-linux.h @@ -313,6 +313,7 @@ struct vki_f_owner_ex { #define VKI_SIOCSPGRP 0x8902 #define VKI_SIOCGPGRP 0x8904 +#define VKI_SIOCATMARK 0x8905 #define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ #define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ diff --git a/include/vki/vki-arm64-linux.h b/include/vki/vki-arm64-linux.h index 1c13105ef8..4a16704d26 100644 --- a/include/vki/vki-arm64-linux.h +++ b/include/vki/vki-arm64-linux.h @@ -284,6 +284,7 @@ struct vki_f_owner_ex { #define VKI_SIOCSPGRP 0x8902 #define VKI_SIOCGPGRP 0x8904 +#define VKI_SIOCATMARK 0x8905 #define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ #define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ diff --git a/include/vki/vki-mips32-linux.h b/include/vki/vki-mips32-linux.h index c38da2df93..a0aaea80f6 100644 --- a/include/vki/vki-mips32-linux.h +++ b/include/vki/vki-mips32-linux.h @@ -382,6 +382,7 @@ struct vki_f_owner_ex { #define VKI_SIOCSPGRP 0x8902 #define VKI_SIOCGPGRP 0x8904 +#define VKI_SIOCATMARK 0x8905 #define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ #define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ diff --git a/include/vki/vki-mips64-linux.h b/include/vki/vki-mips64-linux.h index 4dc24134f3..bf49bb3275 100644 --- a/include/vki/vki-mips64-linux.h +++ b/include/vki/vki-mips64-linux.h @@ -387,6 +387,7 @@ struct vki_f_owner_ex { #define VKI_SIOCSPGRP 0x8902 #define VKI_SIOCGPGRP 0x8904 +#define VKI_SIOCATMARK 0x8905 #define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ #define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ diff --git a/include/vki/vki-ppc32-linux.h b/include/vki/vki-ppc32-linux.h index 8eed63738b..f71dae59c7 100644 --- a/include/vki/vki-ppc32-linux.h +++ b/include/vki/vki-ppc32-linux.h @@ -380,6 +380,7 @@ struct vki_f_owner_ex { #define VKI_SIOCSPGRP 0x8902 #define VKI_SIOCGPGRP 0x8904 +#define VKI_SIOCATMARK 0x8905 #define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ #define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ diff --git a/include/vki/vki-ppc64-linux.h b/include/vki/vki-ppc64-linux.h index 8db1e4ca38..d239cab6ff 100644 --- a/include/vki/vki-ppc64-linux.h +++ b/include/vki/vki-ppc64-linux.h @@ -431,6 +431,7 @@ struct vki_f_owner_ex { #define VKI_SIOCSPGRP 0x8902 #define VKI_SIOCGPGRP 0x8904 +#define VKI_SIOCATMARK 0x8905 #define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ #define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ diff --git a/include/vki/vki-s390x-linux.h b/include/vki/vki-s390x-linux.h index 53c46f67e2..b878949856 100644 --- a/include/vki/vki-s390x-linux.h +++ b/include/vki/vki-s390x-linux.h @@ -377,6 +377,7 @@ struct vki_f_owner_ex { #define VKI_SIOCSPGRP 0x8902 #define VKI_SIOCGPGRP 0x8904 +#define VKI_SIOCATMARK 0x8905 #define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ /* since 2.6.22 */ #define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ diff --git a/include/vki/vki-x86-linux.h b/include/vki/vki-x86-linux.h index f23f3e4aaa..8f080389d2 100644 --- a/include/vki/vki-x86-linux.h +++ b/include/vki/vki-x86-linux.h @@ -351,6 +351,7 @@ struct vki_f_owner_ex { #define VKI_SIOCSPGRP 0x8902 #define VKI_SIOCGPGRP 0x8904 +#define VKI_SIOCATMARK 0x8905 #define VKI_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ #define VKI_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */