You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
1
(32) |
2
(22) |
3
(47) |
4
(29) |
5
(18) |
6
(16) |
|
7
(21) |
8
(29) |
9
(23) |
10
(68) |
11
(20) |
12
(17) |
13
(17) |
|
14
(27) |
15
(26) |
16
(21) |
17
(13) |
18
(19) |
19
(29) |
20
(13) |
|
21
(9) |
22
(8) |
23
(29) |
24
(56) |
25
(21) |
26
(46) |
27
(33) |
|
28
(25) |
29
(41) |
30
(35) |
31
(28) |
|
|
|
|
From: <sv...@va...> - 2005-08-31 23:50:43
|
Author: njn Date: 2005-09-01 00:50:41 +0100 (Thu, 01 Sep 2005) New Revision: 4604 Log: Include VEX in SUBDIRS so that it doesn't need to be mentioned within individual subsidiary Makefile.am files such as coregrind/Makefile.am. Modified: branches/ASPACEM/Makefile.am branches/ASPACEM/coregrind/Makefile.am Modified: branches/ASPACEM/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/ASPACEM/Makefile.am 2005-08-31 23:41:37 UTC (rev 4603) +++ branches/ASPACEM/Makefile.am 2005-08-31 23:50:41 UTC (rev 4604) @@ -16,8 +16,9 @@ # And we want to include Addrcheck in the distro, but not compile/test i= t. # Put docs last because building the HTML is slow and we want to get # everything else working before we try it. -SUBDIRS =3D include coregrind . tests auxprogs $(TOOLS) helgrind docs -DIST_SUBDIRS =3D $(SUBDIRS) addrcheck +BUILD_SUBDIRS =3D include coregrind . tests auxprogs $(TOOLS) helgrind d= ocs +SUBDIRS =3D VEX $(BUILD_SUBDIRS) +DIST_SUBDIRS =3D $(BUILD_SUBDIRS) addrcheck =20 SUPP_FILES =3D \ glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp \ @@ -85,6 +86,8 @@ VEX/LICENSE.README \ VEX/LICENSE.GPL \ VEX/Makefile \ + VEX/test_main.c \ + VEX/test_main.h \ VEX/auxprogs/genoffsets.c \ VEX/pub/libvex_guest_amd64.h \ VEX/pub/libvex_ir.h \ Modified: branches/ASPACEM/coregrind/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/ASPACEM/coregrind/Makefile.am 2005-08-31 23:41:37 UTC (rev 4= 603) +++ branches/ASPACEM/coregrind/Makefile.am 2005-08-31 23:50:41 UTC (rev 4= 604) @@ -133,12 +133,6 @@ -Wl,--soname,vg_preload_core.so \ -Wl,-z,initfirst =20 -@VEX_DIR@/libvex.a: @VEX_DIR@/priv/main/vex_svnversion.h - $(MAKE) -C @VEX_DIR@ libvex.a - -@VEX_DIR@/priv/main/vex_svnversion.h: - $(MAKE) -C @VEX_DIR@ version - clean-local: $(MAKE) -C @VEX_DIR@ clean =20 |
|
From: <sv...@va...> - 2005-08-31 23:41:40
|
Author: njn Date: 2005-09-01 00:41:37 +0100 (Thu, 01 Sep 2005) New Revision: 4603 Log: Avoid automake warnings. Modified: branches/ASPACEM/memcheck/tests/Makefile.am Modified: branches/ASPACEM/memcheck/tests/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/ASPACEM/memcheck/tests/Makefile.am 2005-08-31 19:58:19 UTC (= rev 4602) +++ branches/ASPACEM/memcheck/tests/Makefile.am 2005-08-31 23:41:37 UTC (= rev 4603) @@ -138,6 +138,7 @@ -Wl,-T,$(top_srcdir)/valt_load_address.lds hello_DEPENDENCIES =3D $(top_srcdir)/valt_load_address.lds =20 -vgtest_ume_CFLAGS =3D -DVGA_$(VG_ARCH) -DVGO_$(VG_OS) -vgtest_ume_LDADD =3D ../../coregrind/m_ume.o +# vgtest_ume is not working +#vgtest_ume_CFLAGS =3D -DVGA_$(VG_ARCH) -DVGO_$(VG_OS) +#vgtest_ume_LDADD =3D ../../coregrind/m_ume.o =20 |
|
From: <sv...@va...> - 2005-08-31 19:58:24
|
Author: dirk Date: 2005-08-31 20:58:19 +0100 (Wed, 31 Aug 2005) New Revision: 4602 Log: update Modified: trunk/docs/internals/3_0_BUGSTATUS.txt Modified: trunk/docs/internals/3_0_BUGSTATUS.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/internals/3_0_BUGSTATUS.txt 2005-08-31 19:57:55 UTC (rev 4= 601) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-08-31 19:58:19 UTC (rev 4= 602) @@ -112,7 +112,7 @@ 111785 make fails if CC contains spaces =20 FIXED-TRUNK: 4589, 4592 -FIXED-30BRANCH: 4597, 4598 +FIXED-30BRANCH: 4597, 4601 =20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D Bugs targeted for 3.1.0 and 3.0.1 = =3D=3D=3D |
|
From: <sv...@va...> - 2005-08-31 19:57:59
|
Author: dirk Date: 2005-08-31 20:57:55 +0100 (Wed, 31 Aug 2005) New Revision: 4601 Log: merge 4592 Modified: branches/VALGRIND_3_0_BRANCH/coregrind/m_dispatch/Makefile.am branches/VALGRIND_3_0_BRANCH/coregrind/m_syswrap/Makefile.am Modified: branches/VALGRIND_3_0_BRANCH/coregrind/m_dispatch/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/VALGRIND_3_0_BRANCH/coregrind/m_dispatch/Makefile.am 2005-08= -31 19:57:12 UTC (rev 4600) +++ branches/VALGRIND_3_0_BRANCH/coregrind/m_dispatch/Makefile.am 2005-08= -31 19:57:55 UTC (rev 4601) @@ -13,4 +13,4 @@ dispatch-@VG_ARCH@.S: libvex_guest_offsets.h =20 libvex_guest_offsets.h: - $(MAKE) -C @VEX_DIR@ CC=3D$(CC) pub/libvex_guest_offsets.h + $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" pub/libvex_guest_offsets.h Modified: branches/VALGRIND_3_0_BRANCH/coregrind/m_syswrap/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/VALGRIND_3_0_BRANCH/coregrind/m_syswrap/Makefile.am 2005-08-= 31 19:57:12 UTC (rev 4600) +++ branches/VALGRIND_3_0_BRANCH/coregrind/m_syswrap/Makefile.am 2005-08-= 31 19:57:55 UTC (rev 4601) @@ -26,4 +26,4 @@ syswrap-main.c: libvex_guest_offsets.h =20 libvex_guest_offsets.h: - $(MAKE) -C @VEX_DIR@ CC=3D$(CC) pub/libvex_guest_offsets.h + $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" pub/libvex_guest_offsets.h |
|
From: <sv...@va...> - 2005-08-31 19:57:18
|
Author: dirk Date: 2005-08-31 20:57:12 +0100 (Wed, 31 Aug 2005) New Revision: 4600 Log: update Modified: trunk/docs/internals/3_0_BUGSTATUS.txt Modified: trunk/docs/internals/3_0_BUGSTATUS.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/internals/3_0_BUGSTATUS.txt 2005-08-31 15:59:16 UTC (rev 4= 599) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-08-31 19:57:12 UTC (rev 4= 600) @@ -112,7 +112,7 @@ 111785 make fails if CC contains spaces =20 FIXED-TRUNK: 4589, 4592 -FIXED-30BRANCH: TODO +FIXED-30BRANCH: 4597, 4598 =20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D Bugs targeted for 3.1.0 and 3.0.1 = =3D=3D=3D |
|
From: Greg P. <gp...@us...> - 2005-08-31 19:23:35
|
Nicholas Nethercote writes:
> fcntl64 (flags are different)
>
> Which flags are different? If it's a small number we could get away with
> #ifdefs... there are already some in this wrapper.
Flags used by fcntl64 that Darwin doesn't have:
F_GETSIG
F_SETSIG
F_GETLEASE
F_SETLEASE
F_NOTIFY
F_GETLK64
F_SETLK64
F_SETLKW64
I'd like to see fcntl and ioctl provide support for generic flags
plus a hook for platform-specific flags, something like this:
PRE(sys_fcntl)
{
switch (ARG2) {
case VKI_F_GETFD: ...
case VKI_F_GETFL: ...
// .. other generic flags here ...
default:
platform_specific_pre_fcntl(ARG1, ARG2, ARG3);
}
}
> kill (darwin has another parameter)
>
> AFAICT kill's parameters are the same for Darwin and Linux.
You're right, it's the same.
--
Greg Parker gp...@us...
|
|
From: Jeroen N. W. <jn...@xs...> - 2005-08-31 18:56:07
|
Dinner brought inspiration, and I think you'll like the result (in the attached tarball). I also added a comment to README.txt about the possibility of specifying the desired output width on the command line. Jeroen. |
|
From: Nicholas N. <nj...@cs...> - 2005-08-31 18:07:12
|
On Wed, 31 Aug 2005, Jeroen N. Witmond wrote: > - programlisting does not get indented. > They actually are indented, but with the same amount (sometimes zero) as > the surrounding paragraphs. I have changed the stylesheet to indent > screens and programlistings two additional spaces, which brings it more > inline with the 'old' FAQ.txt. Great. > - Too many empty lines. > This will require some tweaking and a little time, but I'm working on it. > I'll send you a new version when it's done. Excellent, thanks. > PS: In topic 4.3 in the 'old' FAQ, indentation (one space) is used to > suggest elements in a list of possible outputs. It would be appropriate to > represent this list in the xml. A patch to achieve this is attached. Good idea, I'll apply it. Thanks. Nick |
|
From: Jeroen N. W. <jn...@xs...> - 2005-08-31 17:36:40
|
Oops! I accidentally deleted your email with comments, but IIRC they were: - programlisting does not get indented. They actually are indented, but with the same amount (sometimes zero) as the surrounding paragraphs. I have changed the stylesheet to indent screens and programlistings two additional spaces, which brings it more inline with the 'old' FAQ.txt. - Too many empty lines. This will require some tweaking and a little time, but I'm working on it. I'll send you a new version when it's done. Jeroen. PS: In topic 4.3 in the 'old' FAQ, indentation (one space) is used to suggest elements in a list of possible outputs. It would be appropriate to represent this list in the xml. A patch to achieve this is attached. |
|
From: <sv...@va...> - 2005-08-31 15:59:21
|
Author: njn Date: 2005-08-31 16:59:16 +0100 (Wed, 31 Aug 2005) New Revision: 4599 Log: Add a 3.1.0 maybe feature (suppression by line number) Modified: trunk/docs/internals/roadmap.txt Modified: trunk/docs/internals/roadmap.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/internals/roadmap.txt 2005-08-31 14:46:29 UTC (rev 4598) +++ trunk/docs/internals/roadmap.txt 2005-08-31 15:59:16 UTC (rev 4599) @@ -39,4 +39,4 @@ =20 * Reinstate Addrcheck and/or implement V-bit compression in Memcheck (?)= . =20 - +* Allow suppressions by filename + line number? (Joseph Link's patch) |
|
From: <sv...@va...> - 2005-08-31 14:46:35
|
Author: sewardj
Date: 2005-08-31 15:46:29 +0100 (Wed, 31 Aug 2005)
New Revision: 4598
Log:
Remove dependency on m_libcbase and m_libcprint.
Modified:
branches/ASPACEM/coregrind/m_aspacemgr/read_procselfmaps.c
Modified: branches/ASPACEM/coregrind/m_aspacemgr/read_procselfmaps.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/m_aspacemgr/read_procselfmaps.c 2005-08-31=
10:39:50 UTC (rev 4597)
+++ branches/ASPACEM/coregrind/m_aspacemgr/read_procselfmaps.c 2005-08-31=
14:46:29 UTC (rev 4598)
@@ -30,12 +30,11 @@
*/
=20
#include "pub_core_basics.h"
+#include "pub_core_debuglog.h"
#include "pub_core_debuginfo.h" // Needed for pub_core_aspacemgr :(
#include "pub_core_aspacemgr.h"
-#include "pub_core_libcbase.h"
#include "pub_core_libcassert.h"
#include "pub_core_libcfile.h"
-#include "pub_core_libcprint.h"
=20
/* Size of a smallish table used to read /proc/self/map entries. */
#define M_PROCMAP_BUF 50000
@@ -104,7 +103,7 @@
/* Read the initial memory mapping from the /proc filesystem. */
fd =3D VG_(open) ( "/proc/self/maps", VKI_O_RDONLY, 0 );
if (fd.isError) {
- VG_(message)(Vg_UserMsg, "FATAL: can't open /proc/self/maps");
+ VG_(debugLog)(0, "Valgrind:", "FATAL: can't open /proc/self/maps\n=
");
VG_(exit)(1);
}
buf_n_tot =3D 0;
@@ -115,13 +114,13 @@
} while ( n_chunk > 0 && buf_n_tot < M_PROCMAP_BUF );
VG_(close)(fd.val);
if (buf_n_tot >=3D M_PROCMAP_BUF-5) {
- VG_(message)(Vg_UserMsg, "FATAL: M_PROCMAP_BUF is too small; "
- "increase it and recompile");
- VG_(exit)(1);
+ VG_(debugLog)(0, "Valgrind:", "FATAL: M_PROCMAP_BUF is too small;\=
n");
+ VG_(debugLog)(0, "Valgrind:", " increase it and recompile.\n=
");
+ VG_(exit)(1);
}
if (buf_n_tot =3D=3D 0) {
- VG_(message)(Vg_UserMsg, "FATAL: I/O error on /proc/self/maps" );
- VG_(exit)(1);
+ VG_(debugLog)(0, "Valgrind:", "FATAL: I/O error on /proc/self/maps=
\n");
+ VG_(exit)(1);
}
procmap_buf[buf_n_tot] =3D 0;
}
@@ -165,7 +164,7 @@
tl_assert( '\0' !=3D procmap_buf[0] && 0 !=3D buf_n_tot);
=20
if (0)
- VG_(message)(Vg_DebugMsg, "raw:\n%s", procmap_buf );
+ VG_(debugLog)(0, "procselfmaps", "raw:\n%s\n", procmap_buf);
=20
/* Ok, it's safely aboard. Parse the entries. */
i =3D 0;
@@ -219,11 +218,20 @@
goto read_line_ok;
=20
syntaxerror:
- VG_(message)(Vg_UserMsg, "FATAL: syntax error reading /proc/self/m=
aps");
- { Int k;
- VG_(printf)("last 50 chars: '");
- for (k =3D i-50; k <=3D i; k++) VG_(printf)("%c", procmap_buf[k]=
);
- VG_(printf)("'\n");
+ VG_(debugLog)(0, "Valgrind:",=20
+ "FATAL: syntax error reading /proc/self/maps\n");
+ { Int k, m;
+ HChar buf50[51];
+ m =3D 0;
+ buf50[m] =3D 0;
+ k =3D i - 50;
+ if (k < 0) k =3D 0;
+ for (; k <=3D i; k++) {
+ buf50[m] =3D procmap_buf[k];
+ buf50[m+1] =3D 0;
+ if (m < 50-1) m++;
+ }
+ VG_(debugLog)(0, "procselfmaps", "Last 50 chars: '%s'\n", buf50)=
;
}
VG_(exit)(1);
=20
|
|
From: Julian S. <js...@ac...> - 2005-08-31 13:08:22
|
On Wednesday 31 August 2005 11:36, Dirk Mueller wrote: > On Tuesday 30 August 2005 14:54, sv...@va... wrote: > > Fix suspicious code in the memcheck instrumenter which probably > > rendered many of the assertions in this file ineffective. Spotted by > > Tom Truscott. > > Worth backporting, right? No, imo. I thought about it, but the only effect it can have is to cause assertions to fail when they didn't fail before, which isn't good. If this change in the trunk reveals other problems in memcheck then we can backport the fixes for those problems. But I prefer not to backport this. J |
|
From: <sv...@va...> - 2005-08-31 10:39:56
|
Author: dirk Date: 2005-08-31 11:39:50 +0100 (Wed, 31 Aug 2005) New Revision: 4597 Log: backport quoting fix for $CC (r4589) Modified: branches/VALGRIND_3_0_BRANCH/coregrind/Makefile.am Modified: branches/VALGRIND_3_0_BRANCH/coregrind/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/VALGRIND_3_0_BRANCH/coregrind/Makefile.am 2005-08-31 09:50:2= 6 UTC (rev 4596) +++ branches/VALGRIND_3_0_BRANCH/coregrind/Makefile.am 2005-08-31 10:39:5= 0 UTC (rev 4597) @@ -198,13 +198,13 @@ || rm -f $@ =20 @VEX_DIR@/libvex.a: @VEX_DIR@/priv/main/vex_svnversion.h - $(MAKE) -C @VEX_DIR@ CC=3D$(CC) libvex.a EXTRA_CFLAGS=3D"@ARCH_CORE_AM_= CFLAGS@ @PIE_AM_CFLAGS@" + $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" libvex.a EXTRA_CFLAGS=3D"@ARCH_CORE_A= M_CFLAGS@ @PIE_AM_CFLAGS@" =20 @VEX_DIR@/priv/main/vex_svnversion.h: $(wildcard @VEX_DIR@/.svn/entries) - $(MAKE) -C @VEX_DIR@ CC=3D$(CC) version + $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" version =20 clean-local: - $(MAKE) -C @VEX_DIR@ CC=3D$(CC) clean + $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" clean =20 MANUAL_DEPS =3D $(noinst_HEADERS) $(include_HEADERS) =20 |
|
From: Dirk M. <dm...@gm...> - 2005-08-31 10:37:25
|
On Tuesday 30 August 2005 14:54, sv...@va... wrote: > Fix suspicious code in the memcheck instrumenter which probably > rendered many of the assertions in this file ineffective. Spotted by > Tom Truscott. Worth backporting, right? Dirk |
|
From: <sv...@va...> - 2005-08-31 09:50:30
|
Author: sewardj Date: 2005-08-31 10:50:26 +0100 (Wed, 31 Aug 2005) New Revision: 4596 Log: It may be impossible to decide on an ordering for $(COREGRIND_LIBS) that does not give link errors on some platform or other. Hack: list them twice. Fixes link failure on SuSE 9.1 x86. Modified: branches/ASPACEM/Makefile.tool.am Modified: branches/ASPACEM/Makefile.tool.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/ASPACEM/Makefile.tool.am 2005-08-31 03:00:40 UTC (rev 4595) +++ branches/ASPACEM/Makefile.tool.am 2005-08-31 09:50:26 UTC (rev 4596) @@ -23,7 +23,7 @@ =20 ## Nb: do not call this variables "TOOL_LINKADD" and "TOOL_LDFLAGS" -- t= hat ## makes automake think we are building something called "TOOLS". -TOOL_LINKADD =3D $(COREGRIND_LIBS) -lgcc +TOOL_LINKADD =3D $(COREGRIND_LIBS) $(COREGRIND_LIBS) -lgcc TOOL_LINKFLAGS =3D \ -static \ -Wl,-defsym,valt_load_address=3D@VALT_LOAD_ADDRESS@ \ |
|
From: <sv...@va...> - 2005-08-31 03:00:44
|
Author: njn
Date: 2005-08-31 04:00:40 +0100 (Wed, 31 Aug 2005)
New Revision: 4595
Log:
Moved sys_mmap2 wrapper from "generic" to "linux".
Modified:
trunk/coregrind/m_syswrap/priv_syswrap-generic.h
trunk/coregrind/m_syswrap/priv_syswrap-linux.h
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/priv_syswrap-generic.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2005-08-31 02:44:31 =
UTC (rev 4594)
+++ trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2005-08-31 03:00:40 =
UTC (rev 4595)
@@ -178,7 +178,6 @@
DECL_TEMPLATE(generic, sys_getpmsg); // (?) (?)
DECL_TEMPLATE(generic, sys_putpmsg); // (?) (?)
DECL_TEMPLATE(generic, sys_getrlimit); // * (?)
-DECL_TEMPLATE(generic, sys_mmap2); // (x86?) P?
DECL_TEMPLATE(generic, sys_truncate64); // %% (P?)
DECL_TEMPLATE(generic, sys_ftruncate64); // %% (P?)
DECL_TEMPLATE(generic, sys_lchown); // * (L?)
Modified: trunk/coregrind/m_syswrap/priv_syswrap-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-08-31 02:44:31 UT=
C (rev 4594)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-08-31 03:00:40 UT=
C (rev 4595)
@@ -66,6 +66,7 @@
DECL_TEMPLATE(linux, sys_sendfile);
DECL_TEMPLATE(linux, sys_sendfile64);
DECL_TEMPLATE(linux, sys_futex);
+DECL_TEMPLATE(linux, sys_mmap2);
=20
DECL_TEMPLATE(linux, sys_epoll_create);
DECL_TEMPLATE(linux, sys_epoll_ctl);
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-08-31 02:44:31 U=
TC (rev 4594)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-08-31 03:00:40 U=
TC (rev 4595)
@@ -1186,7 +1186,7 @@
GENXY(__NR_lstat, sys_newlstat), // 6=20
GENXY(__NR_poll, sys_poll), // 7=20
LINX_(__NR_lseek, sys_lseek), // 8=20
- GENXY(__NR_mmap, sys_mmap2), // 9=20
+ LINXY(__NR_mmap, sys_mmap2), // 9=20
=20
GENXY(__NR_mprotect, sys_mprotect), // 10=20
GENXY(__NR_munmap, sys_munmap), // 11=20
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-08-31 02:44:31 UTC (=
rev 4594)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-08-31 03:00:40 UTC (=
rev 4595)
@@ -4149,58 +4149,6 @@
PRE_MEM_RASCIIZ( "mkdir(pathname)", ARG1 );
}
=20
-PRE(sys_mmap2)
-{
- // Exactly like old_mmap() in x86-linux except:
- // - all 6 args are passed in regs, rather than in a memory-block.
- // - the file offset is specified in pagesize units rather than byte=
s,
- // so that it can be used for files bigger than 2^32 bytes.
- PRINT("sys_mmap2 ( %p, %llu, %d, %d, %d, %d )",
- ARG1, (ULong)ARG2, ARG3, ARG4, ARG5, ARG6 );
- PRE_REG_READ6(long, "mmap2",
- unsigned long, start, unsigned long, length,
- unsigned long, prot, unsigned long, flags,
- unsigned long, fd, unsigned long, offset);
-
- if (ARG2 =3D=3D 0) {
- /* SuSV3 says: If len is zero, mmap() shall fail and no mapping
- shall be established. */
- SET_STATUS_Failure( VKI_EINVAL );
- return;
- }
-
- if (/*(ARG4 & VKI_MAP_FIXED) && */ (0 !=3D (ARG1 & (VKI_PAGE_SIZE-1))=
)) {
- /* zap any misaligned addresses. */
- /* SuSV3 says misaligned addresses only cause the MAP_FIXED case
- to fail. Here, we catch them all. */
- SET_STATUS_Failure( VKI_EINVAL );
- return;
- }
-
- if (ARG4 & VKI_MAP_FIXED) {
- if (!ML_(valid_client_addr)(ARG1, ARG2, tid, "mmap2"))
- SET_STATUS_Failure( VKI_ENOMEM );
- } else {
- Addr a =3D VG_(find_map_space)(ARG1, ARG2, True);
- if (a =3D=3D 0 && ARG1 !=3D 0)
- a =3D VG_(find_map_space)(0, ARG2, True);
- if (a =3D=3D 0) {
- SET_STATUS_Failure( VKI_ENOMEM );
- } else {
- ARG1 =3D a;
- ARG4 |=3D VKI_MAP_FIXED;
- }
- }
-}
-
-POST(sys_mmap2)
-{
- vg_assert(SUCCESS);
- vg_assert(ML_(valid_client_addr)(RES, ARG2, tid, "mmap2"));
- ML_(mmap_segment)( (Addr)RES, ARG2, ARG3, ARG4, ARG5,
- ARG6 * (ULong)VKI_PAGE_SIZE );
-}
-
PRE(sys_mprotect)
{
PRINT("sys_mprotect ( %p, %llu, %d )", ARG1,(ULong)ARG2,ARG3);
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2005-08-31 02:44:31 UTC (re=
v 4594)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2005-08-31 03:00:40 UTC (re=
v 4595)
@@ -546,6 +546,57 @@
}
}
=20
+PRE(sys_mmap2)
+{
+ // Exactly like old_mmap() in x86-linux except:
+ // - all 6 args are passed in regs, rather than in a memory-block.
+ // - the file offset is specified in pagesize units rather than byte=
s,
+ // so that it can be used for files bigger than 2^32 bytes.
+ PRINT("sys_mmap2 ( %p, %llu, %d, %d, %d, %d )",
+ ARG1, (ULong)ARG2, ARG3, ARG4, ARG5, ARG6 );
+ PRE_REG_READ6(long, "mmap2",
+ unsigned long, start, unsigned long, length,
+ unsigned long, prot, unsigned long, flags,
+ unsigned long, fd, unsigned long, offset);
+
+ if (ARG2 =3D=3D 0) {
+ /* SuSV3 says: If len is zero, mmap() shall fail and no mapping
+ shall be established. */
+ SET_STATUS_Failure( VKI_EINVAL );
+ return;
+ }
+
+ if (/*(ARG4 & VKI_MAP_FIXED) && */ (0 !=3D (ARG1 & (VKI_PAGE_SIZE-1))=
)) {
+ /* zap any misaligned addresses. */
+ /* SuSV3 says misaligned addresses only cause the MAP_FIXED case
+ to fail. Here, we catch them all. */
+ SET_STATUS_Failure( VKI_EINVAL );
+ return;
+ }
+
+ if (ARG4 & VKI_MAP_FIXED) {
+ if (!ML_(valid_client_addr)(ARG1, ARG2, tid, "mmap2"))
+ SET_STATUS_Failure( VKI_ENOMEM );
+ } else {
+ Addr a =3D VG_(find_map_space)(ARG1, ARG2, True);
+ if (a =3D=3D 0 && ARG1 !=3D 0)
+ a =3D VG_(find_map_space)(0, ARG2, True);
+ if (a =3D=3D 0) {
+ SET_STATUS_Failure( VKI_ENOMEM );
+ } else {
+ ARG1 =3D a;
+ ARG4 |=3D VKI_MAP_FIXED;
+ }
+ }
+}
+POST(sys_mmap2)
+{
+ vg_assert(SUCCESS);
+ vg_assert(ML_(valid_client_addr)(RES, ARG2, tid, "mmap2"));
+ ML_(mmap_segment)( (Addr)RES, ARG2, ARG3, ARG4, ARG5,
+ ARG6 * (ULong)VKI_PAGE_SIZE );
+}
+
/* ---------------------------------------------------------------------
epoll_* wrappers
------------------------------------------------------------------ */
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-08-31 02:44:31 U=
TC (rev 4594)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-08-31 03:00:40 U=
TC (rev 4595)
@@ -2192,7 +2192,7 @@
GENX_(__NR_vfork, sys_fork), // 189
GENXY(__NR_ugetrlimit, sys_getrlimit), // 190
//__NR_readahead // 191 ppc/Linux only?
- GENXY(__NR_mmap2, sys_mmap2), // 192
+ LINXY(__NR_mmap2, sys_mmap2), // 192
//.. GENX_(__NR_truncate64, sys_truncate64), // 193
//.. GENX_(__NR_ftruncate64, sys_ftruncate64), // 194
//.. =20
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-08-31 02:44:31 UTC=
(rev 4594)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-08-31 03:00:40 UTC=
(rev 4595)
@@ -2173,7 +2173,7 @@
// Nb: we treat vfork as fork
GENX_(__NR_vfork, sys_fork), // 190
GENXY(__NR_ugetrlimit, sys_getrlimit), // 191
- GENXY(__NR_mmap2, sys_mmap2), // 192
+ LINXY(__NR_mmap2, sys_mmap2), // 192
GENX_(__NR_truncate64, sys_truncate64), // 193
GENX_(__NR_ftruncate64, sys_ftruncate64), // 194
=20
|
|
From: Nicholas N. <nj...@cs...> - 2005-08-31 02:59:13
|
Hi, I'm pretty much done with moving syscalls from "generic" to "linux". On Wed, 24 Aug 2005, Greg Parker wrote: > The wrappers are divided into four classes: > * Truly generic. I've left these untouched. > * Unused on Darwin but generic. There is no Darwin syscall that > will use this wrapper, but the wrapper compiles without error. > These should stay in syswrap-generic.c if they are useful for > FreeBSD or Solaris or something. I've left these untouched except for rt_sig* and those that were part of a group which had some members in the below categories (mq_unlink, *xattr, sched_*, get*id16). > * Unused on Darwin and not generic. There is no Darwin syscall > that will use this wrapper, and the wrapper does not compile. > Usually these fail because of a Linux-specific type that is > missing. These could move to syswrap-linux.c, or they could > stay in syswrap-generic.c and Darwin could provide dummy vki > definitions for the types. I've moved all these except for: fcntl64 (flags are different) Which flags are different? If it's a small number we could get away with #ifdefs... there are already some in this wrapper. > * Not generic. Darwin has a syscall that is similar to Linux, > but the wrapper implementations will differ. Usually these > fail because the syscall parameter lists are different. I've moved all these except: kill (darwin has another parameter) AFAICT kill's parameters are the same for Darwin and Linux. Nick |
|
From: <js...@ac...> - 2005-08-31 02:56:30
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-08-31 03:30:01 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 185 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2005-08-31 02:44:52
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2005-08-31 04:40:00 CEST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 158 tests, 18 stderr failures, 1 stdout failure ================= memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/fprw (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) cachegrind/tests/chdir (stderr) cachegrind/tests/dlclose (stdout) cachegrind/tests/dlclose (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/fdleak_ipv4 (stderr) |
|
From: <sv...@va...> - 2005-08-31 02:44:34
|
Author: njn
Date: 2005-08-31 03:44:31 +0100 (Wed, 31 Aug 2005)
New Revision: 4594
Log:
Moved some more syscall wrappers from "generic" to "linux".
Modified:
trunk/coregrind/m_syswrap/priv_syswrap-generic.h
trunk/coregrind/m_syswrap/priv_syswrap-linux.h
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/priv_syswrap-generic.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2005-08-30 21:07:49 =
UTC (rev 4593)
+++ trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2005-08-31 02:44:31 =
UTC (rev 4594)
@@ -78,11 +78,9 @@
DECL_TEMPLATE(generic, sys_time);
DECL_TEMPLATE(generic, sys_mknod);
DECL_TEMPLATE(generic, sys_chmod);
-DECL_TEMPLATE(generic, sys_lseek);
DECL_TEMPLATE(generic, sys_getpid);
DECL_TEMPLATE(generic, sys_alarm);
DECL_TEMPLATE(generic, sys_pause);
-DECL_TEMPLATE(generic, sys_utime);
DECL_TEMPLATE(generic, sys_access);
DECL_TEMPLATE(generic, sys_kill);
DECL_TEMPLATE(generic, sys_rename);
@@ -109,7 +107,6 @@
DECL_TEMPLATE(generic, sys_mlock);
DECL_TEMPLATE(generic, sys_munlock);
DECL_TEMPLATE(generic, sys_mlockall);
-DECL_TEMPLATE(generic, sys_munlockall);
DECL_TEMPLATE(generic, sys_nanosleep);
DECL_TEMPLATE(generic, sys_mremap); // POSIX, but Linux arg order may=
be odd
DECL_TEMPLATE(generic, sys_getuid);
@@ -120,7 +117,6 @@
DECL_TEMPLATE(generic, sys_fsync);
DECL_TEMPLATE(generic, sys_wait4);
DECL_TEMPLATE(generic, sys_mprotect);
-DECL_TEMPLATE(generic, sys_sigprocmask);
DECL_TEMPLATE(generic, sys_getcwd);
DECL_TEMPLATE(generic, sys_symlink);
DECL_TEMPLATE(generic, sys_getgroups);
@@ -129,8 +125,6 @@
DECL_TEMPLATE(generic, sys_setuid);
DECL_TEMPLATE(generic, sys_gettimeofday);
DECL_TEMPLATE(generic, sys_madvise);
-DECL_TEMPLATE(generic, sys_sigpending);
-DECL_TEMPLATE(generic, sys_waitid);
=20
// These ones aren't POSIX, but are in some standard and look reasonably
// generic, and are the same for all architectures under Linux.
@@ -158,9 +152,6 @@
DECL_TEMPLATE(generic, sys_setgid); // SVr4,SVID
DECL_TEMPLATE(generic, sys_utimes); // 4.3BSD
=20
-// Some archs on Linux do not match the generic wrapper for sys_pipe().
-DECL_TEMPLATE(generic, sys_pipe);
-
// May not be generic for every architecture under Linux.
DECL_TEMPLATE(generic, sys_sigaction); // (x86) P
=20
@@ -181,13 +172,6 @@
DECL_TEMPLATE(generic, sys_ipc); // (x86) L
DECL_TEMPLATE(generic, sys_newuname); // * P
DECL_TEMPLATE(generic, sys_init_module); // * L?
-DECL_TEMPLATE(generic, sys_quotactl); // * (?)
-DECL_TEMPLATE(generic, sys_rt_sigaction); // (x86) ()
-DECL_TEMPLATE(generic, sys_rt_sigprocmask); // * ?
-DECL_TEMPLATE(generic, sys_rt_sigpending); // * ?
-DECL_TEMPLATE(generic, sys_rt_sigtimedwait); // * ?
-DECL_TEMPLATE(generic, sys_rt_sigqueueinfo); // * ?
-DECL_TEMPLATE(generic, sys_rt_sigsuspend); // () ()
DECL_TEMPLATE(generic, sys_pread64); // * (Unix98?)
DECL_TEMPLATE(generic, sys_pwrite64); // * (Unix98?)
DECL_TEMPLATE(generic, sys_sigaltstack); // (x86) (XPG4-UNIX)
@@ -244,11 +228,6 @@
extern void ML_(generic_PRE_sys_semtimedop) ( TId, UW, UW, UW, UW );
extern void ML_(generic_PRE_sys_semctl) ( TId, UW, UW, UW, UW );
extern void ML_(generic_POST_sys_semctl) ( TId, UW, UW, UW, UW, U=
W );
-extern void ML_(generic_PRE_sys_msgsnd) ( TId, UW, UW, UW, UW );
-extern void ML_(generic_PRE_sys_msgrcv) ( TId, UW, UW, UW, UW, U=
W );
-extern void ML_(generic_POST_sys_msgrcv) ( TId, UW, UW, UW, UW, U=
W, UW );
-extern void ML_(generic_PRE_sys_msgctl) ( TId, UW, UW, UW );
-extern void ML_(generic_POST_sys_msgctl) ( TId, UW, UW, UW, UW );
extern UWord ML_(generic_PRE_sys_shmat) ( TId, UW, UW, UW );
extern void ML_(generic_POST_sys_shmat) ( TId, UW, UW, UW, UW );
extern Bool ML_(generic_PRE_sys_shmdt) ( TId, UW );
Modified: trunk/coregrind/m_syswrap/priv_syswrap-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-08-30 21:07:49 UT=
C (rev 4593)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-08-31 02:44:31 UT=
C (rev 4594)
@@ -147,7 +147,9 @@
DECL_TEMPLATE(linux, sys_lremovexattr);
DECL_TEMPLATE(linux, sys_fremovexattr);
=20
-// Are these Posix? Darwin doesn't have them, so put them here for now.
+// These are Posix, but not necessarily syscalls. Darwin only supports
+// sched_get_priority_{min,max} and sched_yield, but as libc functions, =
not
+// syscalls.
DECL_TEMPLATE(linux, sys_sched_setparam);
DECL_TEMPLATE(linux, sys_sched_getparam);
DECL_TEMPLATE(linux, sys_sched_setscheduler);
@@ -159,6 +161,51 @@
DECL_TEMPLATE(linux, sys_sched_setaffinity);
DECL_TEMPLATE(linux, sys_sched_getaffinity);
=20
+// These ones have different parameters and/or return values on Darwin.
+// Also, some archs on Linux do not match the generic wrapper for sys_pi=
pe.
+DECL_TEMPLATE(linux, sys_munlockall);
+DECL_TEMPLATE(linux, sys_pipe);
+DECL_TEMPLATE(linux, sys_quotactl);
+DECL_TEMPLATE(linux, sys_waitid);
+
+// Posix, but in Darwin utime is a libc function that calls syscall utim=
es.
+DECL_TEMPLATE(linux, sys_utime);
+
+// On Darwin, off_t is 64-bits even on 32-bit platforms.
+DECL_TEMPLATE(linux, sys_lseek);
+
+// Darwin (and probably other OSes) don't have the old_sigset_t type.
+DECL_TEMPLATE(linux, sys_sigpending);
+DECL_TEMPLATE(linux, sys_sigprocmask);
+
+// I think these are Linux-specific?
+DECL_TEMPLATE(linux, sys_rt_sigaction);
+DECL_TEMPLATE(linux, sys_rt_sigprocmask);
+DECL_TEMPLATE(linux, sys_rt_sigpending);
+DECL_TEMPLATE(linux, sys_rt_sigtimedwait);
+DECL_TEMPLATE(linux, sys_rt_sigqueueinfo);
+DECL_TEMPLATE(linux, sys_rt_sigsuspend);
+
+/* ---------------------------------------------------------------------
+ Wrappers for sockets and ipc-ery. These are split into standalone
+ procedures because x86-linux hides them inside multiplexors
+ (sys_socketcall and sys_ipc).
+ ------------------------------------------------------------------ */
+
+#define TId ThreadId
+#define UW UWord
+#define SR SysRes
+
+extern void ML_(linux_PRE_sys_msgsnd) ( TId, UW, UW, UW, UW );
+extern void ML_(linux_PRE_sys_msgrcv) ( TId, UW, UW, UW, UW, UW );
+extern void ML_(linux_POST_sys_msgrcv) ( TId, UW, UW, UW, UW, UW, UW )=
;
+extern void ML_(linux_PRE_sys_msgctl) ( TId, UW, UW, UW );
+extern void ML_(linux_POST_sys_msgctl) ( TId, UW, UW, UW, UW );
+
+#undef TId
+#undef UW
+#undef SR
+
#endif // __PRIV_SYSWRAP_LINUX_H
=20
/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-08-30 21:07:49 U=
TC (rev 4593)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-08-31 02:44:31 U=
TC (rev 4594)
@@ -1185,14 +1185,14 @@
GENXY(__NR_fstat, sys_newfstat), // 5=20
GENXY(__NR_lstat, sys_newlstat), // 6=20
GENXY(__NR_poll, sys_poll), // 7=20
- GENX_(__NR_lseek, sys_lseek), // 8=20
+ LINX_(__NR_lseek, sys_lseek), // 8=20
GENXY(__NR_mmap, sys_mmap2), // 9=20
=20
GENXY(__NR_mprotect, sys_mprotect), // 10=20
GENXY(__NR_munmap, sys_munmap), // 11=20
GENX_(__NR_brk, sys_brk), // 12=20
- GENXY(__NR_rt_sigaction, sys_rt_sigaction), // 13=20
- GENXY(__NR_rt_sigprocmask, sys_rt_sigprocmask), // 14=20
+ LINXY(__NR_rt_sigaction, sys_rt_sigaction), // 13=20
+ LINXY(__NR_rt_sigprocmask, sys_rt_sigprocmask), // 14=20
=20
PLAX_(__NR_rt_sigreturn, sys_rt_sigreturn), // 15=20
GENXY(__NR_ioctl, sys_ioctl), // 16=20
@@ -1202,7 +1202,7 @@
=20
GENX_(__NR_writev, sys_writev), // 20=20
GENX_(__NR_access, sys_access), // 21=20
- GENXY(__NR_pipe, sys_pipe), // 22=20
+ LINXY(__NR_pipe, sys_pipe), // 22=20
GENX_(__NR_select, sys_select), // 23=20
LINX_(__NR_sched_yield, sys_sched_yield), // 24=20
=20
@@ -1328,13 +1328,13 @@
=20
// LINXY(__NR_capget, sys_capget), // 125=20
// LINX_(__NR_capset, sys_capset), // 126=20
- GENXY(__NR_rt_sigpending, sys_rt_sigpending), // 127=20
- GENXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait),// 128=20
- GENXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo),// 129=20
+ LINXY(__NR_rt_sigpending, sys_rt_sigpending), // 127=20
+ LINXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait),// 128=20
+ LINXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo),// 129=20
=20
- GENX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 130=20
+ LINX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 130=20
GENXY(__NR_sigaltstack, sys_sigaltstack), // 131=20
- GENX_(__NR_utime, sys_utime), // 132=20
+ LINX_(__NR_utime, sys_utime), // 132=20
GENX_(__NR_mknod, sys_mknod), // 133=20
// (__NR_uselib, sys_uselib), // 134=20
=20
@@ -1358,7 +1358,7 @@
=20
GENX_(__NR_munlock, sys_munlock), // 150=20
GENX_(__NR_mlockall, sys_mlockall), // 151=20
- GENX_(__NR_munlockall, sys_munlockall), // 152=20
+ LINX_(__NR_munlockall, sys_munlockall), // 152=20
// (__NR_vhangup, sys_vhangup), // 153=20
// (__NR_modify_ldt, sys_modify_ldt), // 154=20
=20
@@ -1390,7 +1390,7 @@
// (__NR_delete_module, sys_delete_module), // 176=20
// (__NR_get_kernel_syms, sys_ni_syscall), // 177=20
// (__NR_query_module, sys_ni_syscall), // 178=20
- // (__NR_quotactl, sys_quotactl), // 179=20
+ //LINX_(__NR_quotactl, sys_quotactl), // 179=20
=20
// (__NR_nfsservctl, sys_nfsservctl), // 180=20
// (__NR_getpmsg, sys_ni_syscall), // 181
@@ -1472,7 +1472,7 @@
=20
LINXY(__NR_mq_getsetattr, sys_mq_getsetattr), // 245=20
// (__NR_kexec_load, sys_ni_syscall), // 246=20
- GENXY(__NR_waitid, sys_waitid), // 247=20
+ LINXY(__NR_waitid, sys_waitid), // 247=20
// LINX_(__NR_add_key, sys_add_key), // 248
// LINX_(__NR_request_key, sys_request_key), // 249
=20
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-08-30 21:07:49 UTC (=
rev 4593)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-08-31 02:44:31 UTC (=
rev 4594)
@@ -1411,103 +1411,8 @@
=20
/* ------ */
=20
-void
-ML_(generic_PRE_sys_msgsnd) ( ThreadId tid,
- UWord arg0, UWord arg1,
- UWord arg2, UWord arg3 )
-{
- /* int msgsnd(int msqid, struct msgbuf *msgp, size_t msgsz, int msgfl=
g); */
- struct vki_msgbuf *msgp =3D (struct vki_msgbuf *)arg1;
- PRE_MEM_READ( "msgsnd(msgp->mtype)", (Addr)&msgp->mtype, sizeof(msgp-=
>mtype) );
- PRE_MEM_READ( "msgsnd(msgp->mtext)", (Addr)&msgp->mtext, arg2 );
-}
-
/* ------ */
=20
-void
-ML_(generic_PRE_sys_msgrcv) ( ThreadId tid,
- UWord arg0, UWord arg1, UWord arg2,
- UWord arg3, UWord arg4 )
-{
- /* ssize_t msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz,
- long msgtyp, int msgflg); */
- struct vki_msgbuf *msgp =3D (struct vki_msgbuf *)arg1;
- PRE_MEM_WRITE( "msgrcv(msgp->mtype)", (Addr)&msgp->mtype, sizeof(msgp=
->mtype) );
- PRE_MEM_WRITE( "msgrcv(msgp->mtext)", (Addr)&msgp->mtext, arg2 );
-}
-
-void
-ML_(generic_POST_sys_msgrcv) ( ThreadId tid,
- UWord res,
- UWord arg0, UWord arg1, UWord arg2,
- UWord arg3, UWord arg4 )
-{
- struct vki_msgbuf *msgp =3D (struct vki_msgbuf *)arg1;
- POST_MEM_WRITE( (Addr)&msgp->mtype, sizeof(msgp->mtype) );
- POST_MEM_WRITE( (Addr)&msgp->mtext, res );
-}
-
-/* ------ */
-
-void
-ML_(generic_PRE_sys_msgctl) ( ThreadId tid,
- UWord arg0, UWord arg1, UWord arg2 )
-{
- /* int msgctl(int msqid, int cmd, struct msqid_ds *buf); */
- switch (arg1 /* cmd */) {
- case VKI_IPC_INFO:
- case VKI_MSG_INFO:
- case VKI_IPC_INFO|VKI_IPC_64:
- case VKI_MSG_INFO|VKI_IPC_64:
- PRE_MEM_WRITE( "msgctl(IPC_INFO, buf)",
- arg2, sizeof(struct vki_msginfo) );
- break;
- case VKI_IPC_STAT:
- case VKI_MSG_STAT:
- PRE_MEM_WRITE( "msgctl(IPC_STAT, buf)",
- arg2, sizeof(struct vki_msqid_ds) );
- break;
- case VKI_IPC_STAT|VKI_IPC_64:
- case VKI_MSG_STAT|VKI_IPC_64:
- PRE_MEM_WRITE( "msgctl(IPC_STAT, arg.buf)",
- arg2, sizeof(struct vki_msqid64_ds) );
- break;
- case VKI_IPC_SET:
- PRE_MEM_READ( "msgctl(IPC_SET, arg.buf)",
- arg2, sizeof(struct vki_msqid_ds) );
- break;
- case VKI_IPC_SET|VKI_IPC_64:
- PRE_MEM_READ( "msgctl(IPC_SET, arg.buf)",
- arg2, sizeof(struct vki_msqid64_ds) );
- break;
- }
-}
-
-void
-ML_(generic_POST_sys_msgctl) ( ThreadId tid,
- UWord res,
- UWord arg0, UWord arg1, UWord arg2 )
-{
- switch (arg1 /* cmd */) {
- case VKI_IPC_INFO:
- case VKI_MSG_INFO:
- case VKI_IPC_INFO|VKI_IPC_64:
- case VKI_MSG_INFO|VKI_IPC_64:
- POST_MEM_WRITE( arg2, sizeof(struct vki_msginfo) );
- break;
- case VKI_IPC_STAT:
- case VKI_MSG_STAT:
- POST_MEM_WRITE( arg2, sizeof(struct vki_msqid_ds) );
- break;
- case VKI_IPC_STAT|VKI_IPC_64:
- case VKI_MSG_STAT|VKI_IPC_64:
- POST_MEM_WRITE( arg2, sizeof(struct vki_msqid64_ds) );
- break;
- }
-}
-
-/* ------ */
-
static
UInt get_shm_size ( Int shmid )
{
@@ -1717,15 +1622,6 @@
PRE_REG_READ1(long, "iopl", unsigned long, level);
}
=20
-PRE(sys_quotactl)
-{
- PRINT("sys_quotactl (0x%x, %p, 0x%x, 0x%x )", ARG1,ARG2,ARG3, ARG4);
- PRE_REG_READ4(long, "quotactl",
- unsigned int, cmd, const char *, special, vki_qid_t, id=
,
- void *, addr);
- PRE_MEM_RASCIIZ( "quotactl(special)", ARG2 );
-}
-
// XXX: this wrapper is only suitable for 32-bit platforms
#if defined(VGP_x86_linux)
PRE(sys_lookup_dcookie)
@@ -1919,13 +1815,6 @@
PRE_REG_READ1(long, "mlockall", int, flags);
}
=20
-PRE(sys_munlockall)
-{
- *flags |=3D SfMayBlock;
- PRINT("sys_munlockall ( )");
- PRE_REG_READ0(long, "munlockall");
-}
-
PRE(sys_setpriority)
{
PRINT("sys_setpriority ( %d, %d, %d )", ARG1, ARG2, ARG3);
@@ -2293,7 +2182,6 @@
=20
PRE(sys_chown)
{
- /* int chown(const char *path, uid_t owner, gid_t group); */
PRINT("sys_chown ( %p, 0x%x, 0x%x )", ARG1,ARG2,ARG3);
PRE_REG_READ3(long, "chown",
const char *, path, vki_uid_t, owner, vki_gid_t, group)=
;
@@ -2747,7 +2635,6 @@
=20
PRE(sys_getrusage)
{
- /* int getrusage (int who, struct rusage *usage); */
PRINT("sys_getrusage ( %d, %p )", ARG1,ARG2);
PRE_REG_READ2(long, "getrusage", int, who, struct rusage *, usage);
PRE_MEM_WRITE( "getrusage(usage)", ARG2, sizeof(struct vki_rusage) );
@@ -4206,7 +4093,6 @@
=20
PRE(sys_kill)
{
- /* int kill(pid_t pid, int sig); */
PRINT("sys_kill ( %d, %d )", ARG1,ARG2);
PRE_REG_READ2(long, "kill", int, pid, int, sig);
if (!ML_(client_signal_OK)(ARG2)) {
@@ -4239,13 +4125,6 @@
PRE_MEM_RASCIIZ( "link(newpath)", ARG2);
}
=20
-PRE(sys_lseek)
-{
- PRINT("sys_lseek ( %d, %d, %d )", ARG1,ARG2,ARG3);
- PRE_REG_READ3(vki_off_t, "lseek",
- unsigned int, fd, vki_off_t, offset, unsigned int, when=
ce);
-}
-
PRE(sys_newlstat)
{
PRINT("sys_newlstat ( %p(%s), %p )", ARG1,ARG1,ARG2);
@@ -4477,32 +4356,6 @@
}
}
=20
-// XXX: sort of x86-specific
-PRE(sys_pipe)
-{
- PRINT("sys_pipe ( %p )", ARG1);
- PRE_REG_READ1(int, "pipe", unsigned long *, filedes);
- PRE_MEM_WRITE( "pipe(filedes)", ARG1, 2*sizeof(long) );
-}
-
-POST(sys_pipe)
-{
- Int *p =3D (Int *)ARG1;
-
- if (!ML_(fd_allowed)(p[0], "pipe", tid, True) ||
- !ML_(fd_allowed)(p[1], "pipe", tid, True)) {
- VG_(close)(p[0]);
- VG_(close)(p[1]);
- SET_STATUS_Failure( VKI_EMFILE );
- } else {
- POST_MEM_WRITE( ARG1, 2*sizeof(int) );
- if (VG_(clo_track_fds)) {
- ML_(record_fd_open_nameless)(tid, p[0]);
- ML_(record_fd_open_nameless)(tid, p[1]);
- }
- }
-}
-
// XXX: x86-specific, due to pollfd struct
PRE(sys_poll)
{
@@ -4846,16 +4699,6 @@
}
}
=20
-PRE(sys_utime)
-{
- *flags |=3D SfMayBlock;
- PRINT("sys_utime ( %p, %p )", ARG1,ARG2);
- PRE_REG_READ2(long, "utime", char *, filename, struct utimbuf *, buf)=
;
- PRE_MEM_RASCIIZ( "utime(filename)", ARG1 );
- if (ARG2 !=3D 0)
- PRE_MEM_READ( "utime(buf)", ARG2, sizeof(struct vki_utimbuf) );
-}
-
PRE(sys_waitpid)
{
*flags |=3D SfMayBlock;
@@ -4961,63 +4804,8 @@
//zz }
=20
// XXX: x86-specific
-PRE(sys_rt_sigsuspend)
-{
- /* The C library interface to sigsuspend just takes a pointer to
- a signal mask but this system call has two arguments - a pointer
- to the mask and the number of bytes used by it. The kernel insists
- on the size being equal to sizeof(sigset_t) however and will just
- return EINVAL if it isn't.
- */
- *flags |=3D SfMayBlock;
- PRINT("sys_rt_sigsuspend ( %p, %d )", ARG1,ARG2 );
- PRE_REG_READ2(int, "rt_sigsuspend", vki_sigset_t *, mask, vki_size_t,=
size)
- if (ARG1 !=3D (Addr)NULL) {
- PRE_MEM_READ( "rt_sigsuspend(mask)", ARG1, sizeof(vki_sigset_t) );
- }
-}
-
-PRE(sys_rt_sigtimedwait)
-{
- *flags |=3D SfMayBlock;
- PRINT("sys_rt_sigtimedwait ( %p, %p, %p, %lld )",
- ARG1,ARG2,ARG3,(ULong)ARG4);
- PRE_REG_READ4(long, "rt_sigtimedwait",=20
- const vki_sigset_t *, set, vki_siginfo_t *, info,
- const struct timespec *, timeout, vki_size_t, sigsetsiz=
e);
- if (ARG1 !=3D 0)=20
- PRE_MEM_READ( "rt_sigtimedwait(set)", ARG1, sizeof(vki_sigset_t)=
);
- if (ARG2 !=3D 0)
- PRE_MEM_WRITE( "rt_sigtimedwait(info)", ARG2, sizeof(vki_siginfo_t=
) );
- if (ARG3 !=3D 0)
- PRE_MEM_READ( "rt_sigtimedwait(timeout)",
- ARG3, sizeof(struct vki_timespec) );
-}
-
-POST(sys_rt_sigtimedwait)
-{
- if (ARG2 !=3D 0)
- POST_MEM_WRITE( ARG2, sizeof(vki_siginfo_t) );
-}
-
-PRE(sys_rt_sigqueueinfo)
-{
- PRINT("sys_rt_sigqueueinfo(%d, %d, %p)", ARG1, ARG2, ARG3);
- PRE_REG_READ3(long, "rt_sigqueueinfo",=20
- int, pid, int, sig, vki_siginfo_t *, uinfo);
- if (ARG2 !=3D 0)
- PRE_MEM_READ( "rt_sigqueueinfo(uinfo)", ARG3, sizeof(vki_siginfo_t=
) );
-}
-POST(sys_rt_sigqueueinfo)
-{
- if (!ML_(client_signal_OK)(ARG2))
- SET_STATUS_Failure( VKI_EINVAL );
-}
-
-// XXX: x86-specific
PRE(sys_sigaltstack)
{
- /* int sigaltstack(const stack_t *ss, stack_t *oss); */
PRINT("sigaltstack ( %p, %p )",ARG1,ARG2);
PRE_REG_READ2(int, "sigaltstack",
const vki_stack_t *, ss, vki_stack_t *, oss);
@@ -5043,166 +4831,6 @@
POST_MEM_WRITE( ARG2, sizeof(vki_stack_t));
}
=20
-// XXX: x86-specific
-PRE(sys_rt_sigaction)
-{
- PRINT("sys_rt_sigaction ( %d, %p, %p, %d )", ARG1,ARG2,ARG3,ARG4);
- PRE_REG_READ4(long, "rt_sigaction",
- int, signum, const struct sigaction *, act,
- struct sigaction *, oldact, vki_size_t, sigsetsize);
-
- if (ARG2 !=3D 0) {
- struct vki_sigaction *sa =3D (struct vki_sigaction *)ARG2;
- PRE_MEM_READ( "rt_sigaction(act->sa_handler)", (Addr)&sa->ksa_hand=
ler, sizeof(sa->ksa_handler));
- PRE_MEM_READ( "rt_sigaction(act->sa_mask)", (Addr)&sa->sa_mask, si=
zeof(sa->sa_mask));
- PRE_MEM_READ( "rt_sigaction(act->sa_flags)", (Addr)&sa->sa_flags, =
sizeof(sa->sa_flags));
- if (sa->sa_flags & VKI_SA_RESTORER)
- PRE_MEM_READ( "rt_sigaction(act->sa_restorer)", (Addr)&sa->sa_r=
estorer, sizeof(sa->sa_restorer));
- }
- if (ARG3 !=3D 0)
- PRE_MEM_WRITE( "rt_sigaction(oldact)", ARG3, sizeof(struct vki_sig=
action));
-
- // XXX: doesn't seem right to be calling do_sys_sigaction for
- // sys_rt_sigaction... perhaps this function should be renamed
- // VG_(do_sys_rt_sigaction)() --njn
-
- SET_STATUS_from_SysRes(
- VG_(do_sys_sigaction)(ARG1, (const struct vki_sigaction *)ARG2,
- (struct vki_sigaction *)ARG3)
- );
-}
-POST(sys_rt_sigaction)
-{
- vg_assert(SUCCESS);
- if (RES =3D=3D 0 && ARG3 !=3D 0)
- POST_MEM_WRITE( ARG3, sizeof(struct vki_sigaction));
-}
-
-// XXX: This syscall is not used on amd64 -- it only provides
-// sys_rt_sigprocmask, which uses sigset_t rather than old_sigset_t=
.
-// This wrapper is only suitable for 32-bit architectures.
-#if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
-PRE(sys_sigprocmask)
-{
- vki_old_sigset_t* set;
- vki_old_sigset_t* oldset;
- vki_sigset_t bigger_set;
- vki_sigset_t bigger_oldset;
-
- PRINT("sys_sigprocmask ( %d, %p, %p )",ARG1,ARG2,ARG3);
- PRE_REG_READ3(long, "sigprocmask",=20
- int, how, vki_old_sigset_t *, set, vki_old_sigset_t *, =
oldset);
- if (ARG2 !=3D 0)
- PRE_MEM_READ( "sigprocmask(set)", ARG2, sizeof(vki_old_sigset_t));
- if (ARG3 !=3D 0)
- PRE_MEM_WRITE( "sigprocmask(oldset)", ARG3, sizeof(vki_old_sigset_=
t));
-
- // Nb: We must convert the smaller vki_old_sigset_t params into bigge=
r
- // vki_sigset_t params.
- set =3D (vki_old_sigset_t*)ARG2;
- oldset =3D (vki_old_sigset_t*)ARG3;
-
- VG_(memset)(&bigger_set, 0, sizeof(vki_sigset_t));
- VG_(memset)(&bigger_oldset, 0, sizeof(vki_sigset_t));
- if (set)
- bigger_set.sig[0] =3D *(vki_old_sigset_t*)set;
-
- SET_STATUS_from_SysRes(
- VG_(do_sys_sigprocmask) ( tid, ARG1 /*how*/,=20
- set ? &bigger_set : NULL,
- oldset ? &bigger_oldset : NULL)
- );
-
- if (oldset)
- *oldset =3D bigger_oldset.sig[0];
-
- if (SUCCESS)
- *flags |=3D SfPollAfter;
-}
-
-POST(sys_sigprocmask)
-{
- vg_assert(SUCCESS);
- if (RES =3D=3D 0 && ARG3 !=3D 0)
- POST_MEM_WRITE( ARG3, sizeof(vki_old_sigset_t));
-}
-#endif
-
-PRE(sys_rt_sigprocmask)
-{
- PRINT("sys_rt_sigprocmask ( %d, %p, %p, %llu )",ARG1,ARG2,ARG3,(ULong=
)ARG4);
- PRE_REG_READ4(long, "rt_sigprocmask",=20
- int, how, vki_sigset_t *, set, vki_sigset_t *, oldset,
- vki_size_t, sigsetsize);
- if (ARG2 !=3D 0)
- PRE_MEM_READ( "rt_sigprocmask(set)", ARG2, sizeof(vki_sigset_t));
- if (ARG3 !=3D 0)
- PRE_MEM_WRITE( "rt_sigprocmask(oldset)", ARG3, sizeof(vki_sigset_t=
));
-
- // Like the kernel, we fail if the sigsetsize is not exactly what we =
expect.
- if (sizeof(vki_sigset_t) !=3D ARG4)
- SET_STATUS_Failure( VKI_EMFILE );
- else {
- SET_STATUS_from_SysRes(=20
- VG_(do_sys_sigprocmask) ( tid, ARG1 /*how*/,=20
- (vki_sigset_t*) ARG2,
- (vki_sigset_t*) ARG3 )
- );
- }
-
- if (SUCCESS)
- *flags |=3D SfPollAfter;
-}
-
-POST(sys_rt_sigprocmask)
-{
- vg_assert(SUCCESS);
- if (RES =3D=3D 0 && ARG3 !=3D 0)
- POST_MEM_WRITE( ARG3, sizeof(vki_sigset_t));
-}
-
-PRE(sys_sigpending)
-{
- PRINT( "sys_sigpending ( %p )", ARG1 );
- PRE_REG_READ1(long, "sigpending", vki_old_sigset_t *, set);
- PRE_MEM_WRITE( "sigpending(set)", ARG1, sizeof(vki_old_sigset_t));
-}
-
-POST(sys_sigpending)
-{
- POST_MEM_WRITE( ARG1, sizeof(vki_old_sigset_t) ) ;
-}
-
-PRE(sys_rt_sigpending)
-{
- PRINT( "sys_rt_sigpending ( %p )", ARG1 );
- PRE_REG_READ2(long, "rt_sigpending",=20
- vki_sigset_t *, set, vki_size_t, sigsetsize);
- PRE_MEM_WRITE( "rt_sigpending(set)", ARG1, sizeof(vki_sigset_t));
-}
-POST(sys_rt_sigpending)
-{
- POST_MEM_WRITE( ARG1, sizeof(vki_sigset_t) ) ;
-}
-
-PRE(sys_waitid)
-{
- *flags |=3D SfMayBlock;
- PRINT("sys_waitid( %d, %d, %p, %d, %p )", ARG1,ARG2,ARG3,ARG4,ARG5);
- PRE_REG_READ5(int32_t, "sys_waitid",
- int, which, vki_pid_t, pid, struct vki_siginfo *, infop=
,
- int, options, struct vki_rusage *, ru);
- PRE_MEM_WRITE( "waitid(infop)", ARG3, sizeof(struct vki_siginfo) );
- if (ARG5 !=3D 0)
- PRE_MEM_WRITE( "waitid(ru)", ARG5, sizeof(struct vki_rusage) );
-}
-POST(sys_waitid)
-{
- POST_MEM_WRITE( ARG3, sizeof(struct vki_siginfo) );
- if (ARG5 !=3D 0)
- POST_MEM_WRITE( ARG5, sizeof(struct vki_rusage) );
-}
-
#undef PRE
#undef POST
=20
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2005-08-30 21:07:49 UTC (re=
v 4593)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2005-08-31 02:44:31 UTC (re=
v 4594)
@@ -42,6 +42,7 @@
#include "pub_core_tooliface.h"
#include "pub_core_options.h"
#include "pub_core_scheduler.h"
+#include "pub_core_signals.h"
#include "pub_core_syscall.h"
=20
#include "priv_types_n_macros.h"
@@ -639,7 +640,6 @@
=20
PRE(sys_tgkill)
{
- /* int tgkill(pid_t tgid, pid_t tid, int sig); */
PRINT("sys_tgkill ( %d, %d, %d )", ARG1,ARG2,ARG3);
PRE_REG_READ3(long, "tgkill", int, tgid, int, tid, int, sig);
if (!ML_(client_signal_OK)(ARG3)) {
@@ -1539,6 +1539,388 @@
POST_MEM_WRITE(ARG3, ARG2);
}
=20
+/* ---------------------------------------------------------------------
+ miscellaneous wrappers
+ ------------------------------------------------------------------ */
+
+PRE(sys_munlockall)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_munlockall ( )");
+ PRE_REG_READ0(long, "munlockall");
+}
+
+// XXX: sort of x86/Linux-specific
+PRE(sys_pipe)
+{
+ PRINT("sys_pipe ( %p )", ARG1);
+ PRE_REG_READ1(int, "pipe", unsigned long *, filedes);
+ PRE_MEM_WRITE( "pipe(filedes)", ARG1, 2*sizeof(long) );
+}
+POST(sys_pipe)
+{
+ Int *p =3D (Int *)ARG1;
+
+ if (!ML_(fd_allowed)(p[0], "pipe", tid, True) ||
+ !ML_(fd_allowed)(p[1], "pipe", tid, True)) {
+ VG_(close)(p[0]);
+ VG_(close)(p[1]);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ POST_MEM_WRITE( ARG1, 2*sizeof(int) );
+ if (VG_(clo_track_fds)) {
+ ML_(record_fd_open_nameless)(tid, p[0]);
+ ML_(record_fd_open_nameless)(tid, p[1]);
+ }
+ }
+}
+
+PRE(sys_quotactl)
+{
+ PRINT("sys_quotactl (0x%x, %p, 0x%x, 0x%x )", ARG1,ARG2,ARG3, ARG4);
+ PRE_REG_READ4(long, "quotactl",
+ unsigned int, cmd, const char *, special, vki_qid_t, id=
,
+ void *, addr);
+ PRE_MEM_RASCIIZ( "quotactl(special)", ARG2 );
+}
+
+PRE(sys_waitid)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_waitid( %d, %d, %p, %d, %p )", ARG1,ARG2,ARG3,ARG4,ARG5);
+ PRE_REG_READ5(int32_t, "sys_waitid",
+ int, which, vki_pid_t, pid, struct vki_siginfo *, infop=
,
+ int, options, struct vki_rusage *, ru);
+ PRE_MEM_WRITE( "waitid(infop)", ARG3, sizeof(struct vki_siginfo) );
+ if (ARG5 !=3D 0)
+ PRE_MEM_WRITE( "waitid(ru)", ARG5, sizeof(struct vki_rusage) );
+}
+POST(sys_waitid)
+{
+ POST_MEM_WRITE( ARG3, sizeof(struct vki_siginfo) );
+ if (ARG5 !=3D 0)
+ POST_MEM_WRITE( ARG5, sizeof(struct vki_rusage) );
+}
+
+/* ---------------------------------------------------------------------
+ utime wrapper
+ ------------------------------------------------------------------ */
+
+PRE(sys_utime)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_utime ( %p, %p )", ARG1,ARG2);
+ PRE_REG_READ2(long, "utime", char *, filename, struct utimbuf *, buf)=
;
+ PRE_MEM_RASCIIZ( "utime(filename)", ARG1 );
+ if (ARG2 !=3D 0)
+ PRE_MEM_READ( "utime(buf)", ARG2, sizeof(struct vki_utimbuf) );
+}
+
+/* ---------------------------------------------------------------------
+ lseek wrapper
+ ------------------------------------------------------------------ */
+
+PRE(sys_lseek)
+{
+ PRINT("sys_lseek ( %d, %d, %d )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(vki_off_t, "lseek",
+ unsigned int, fd, vki_off_t, offset, unsigned int, when=
ce);
+}
+
+/* ---------------------------------------------------------------------
+ sig* wrappers
+ ------------------------------------------------------------------ */
+
+PRE(sys_sigpending)
+{
+ PRINT( "sys_sigpending ( %p )", ARG1 );
+ PRE_REG_READ1(long, "sigpending", vki_old_sigset_t *, set);
+ PRE_MEM_WRITE( "sigpending(set)", ARG1, sizeof(vki_old_sigset_t));
+}
+POST(sys_sigpending)
+{
+ POST_MEM_WRITE( ARG1, sizeof(vki_old_sigset_t) ) ;
+}
+
+// This syscall is not used on amd64/Linux -- it only provides
+// sys_rt_sigprocmask, which uses sigset_t rather than old_sigset_t.
+// This wrapper is only suitable for 32-bit architectures.
+// (XXX: so how is it that PRE(sys_sigpending) above doesn't need
+// conditional compilation like this?)
+#if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
+PRE(sys_sigprocmask)
+{
+ vki_old_sigset_t* set;
+ vki_old_sigset_t* oldset;
+ vki_sigset_t bigger_set;
+ vki_sigset_t bigger_oldset;
+
+ PRINT("sys_sigprocmask ( %d, %p, %p )",ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "sigprocmask",=20
+ int, how, vki_old_sigset_t *, set, vki_old_sigset_t *, =
oldset);
+ if (ARG2 !=3D 0)
+ PRE_MEM_READ( "sigprocmask(set)", ARG2, sizeof(vki_old_sigset_t));
+ if (ARG3 !=3D 0)
+ PRE_MEM_WRITE( "sigprocmask(oldset)", ARG3, sizeof(vki_old_sigset_=
t));
+
+ // Nb: We must convert the smaller vki_old_sigset_t params into bigge=
r
+ // vki_sigset_t params.
+ set =3D (vki_old_sigset_t*)ARG2;
+ oldset =3D (vki_old_sigset_t*)ARG3;
+
+ VG_(memset)(&bigger_set, 0, sizeof(vki_sigset_t));
+ VG_(memset)(&bigger_oldset, 0, sizeof(vki_sigset_t));
+ if (set)
+ bigger_set.sig[0] =3D *(vki_old_sigset_t*)set;
+
+ SET_STATUS_from_SysRes(
+ VG_(do_sys_sigprocmask) ( tid, ARG1 /*how*/,=20
+ set ? &bigger_set : NULL,
+ oldset ? &bigger_oldset : NULL)
+ );
+
+ if (oldset)
+ *oldset =3D bigger_oldset.sig[0];
+
+ if (SUCCESS)
+ *flags |=3D SfPollAfter;
+}
+POST(sys_sigprocmask)
+{
+ vg_assert(SUCCESS);
+ if (RES =3D=3D 0 && ARG3 !=3D 0)
+ POST_MEM_WRITE( ARG3, sizeof(vki_old_sigset_t));
+}
+#endif
+
+/* ---------------------------------------------------------------------
+ rt_sig* wrappers
+ ------------------------------------------------------------------ */
+
+PRE(sys_rt_sigaction)
+{
+ PRINT("sys_rt_sigaction ( %d, %p, %p, %d )", ARG1,ARG2,ARG3,ARG4);
+ PRE_REG_READ4(long, "rt_sigaction",
+ int, signum, const struct sigaction *, act,
+ struct sigaction *, oldact, vki_size_t, sigsetsize);
+
+ if (ARG2 !=3D 0) {
+ struct vki_sigaction *sa =3D (struct vki_sigaction *)ARG2;
+ PRE_MEM_READ( "rt_sigaction(act->sa_handler)", (Addr)&sa->ksa_hand=
ler, sizeof(sa->ksa_handler));
+ PRE_MEM_READ( "rt_sigaction(act->sa_mask)", (Addr)&sa->sa_mask, si=
zeof(sa->sa_mask));
+ PRE_MEM_READ( "rt_sigaction(act->sa_flags)", (Addr)&sa->sa_flags, =
sizeof(sa->sa_flags));
+ if (sa->sa_flags & VKI_SA_RESTORER)
+ PRE_MEM_READ( "rt_sigaction(act->sa_restorer)", (Addr)&sa->sa_r=
estorer, sizeof(sa->sa_restorer));
+ }
+ if (ARG3 !=3D 0)
+ PRE_MEM_WRITE( "rt_sigaction(oldact)", ARG3, sizeof(struct vki_sig=
action));
+
+ // XXX: doesn't seem right to be calling do_sys_sigaction for
+ // sys_rt_sigaction... perhaps this function should be renamed
+ // VG_(do_sys_rt_sigaction)() --njn
+
+ SET_STATUS_from_SysRes(
+ VG_(do_sys_sigaction)(ARG1, (const struct vki_sigaction *)ARG2,
+ (struct vki_sigaction *)ARG3)
+ );
+}
+POST(sys_rt_sigaction)
+{
+ vg_assert(SUCCESS);
+ if (RES =3D=3D 0 && ARG3 !=3D 0)
+ POST_MEM_WRITE( ARG3, sizeof(struct vki_sigaction));
+}
+
+PRE(sys_rt_sigprocmask)
+{
+ PRINT("sys_rt_sigprocmask ( %d, %p, %p, %llu )",ARG1,ARG2,ARG3,(ULong=
)ARG4);
+ PRE_REG_READ4(long, "rt_sigprocmask",=20
+ int, how, vki_sigset_t *, set, vki_sigset_t *, oldset,
+ vki_size_t, sigsetsize);
+ if (ARG2 !=3D 0)
+ PRE_MEM_READ( "rt_sigprocmask(set)", ARG2, sizeof(vki_sigset_t));
+ if (ARG3 !=3D 0)
+ PRE_MEM_WRITE( "rt_sigprocmask(oldset)", ARG3, sizeof(vki_sigset_t=
));
+
+ // Like the kernel, we fail if the sigsetsize is not exactly what we =
expect.
+ if (sizeof(vki_sigset_t) !=3D ARG4)
+ SET_STATUS_Failure( VKI_EMFILE );
+ else {
+ SET_STATUS_from_SysRes(=20
+ VG_(do_sys_sigprocmask) ( tid, ARG1 /*how*/,=20
+ (vki_sigset_t*) ARG2,
+ (vki_sigset_t*) ARG3 )
+ );
+ }
+
+ if (SUCCESS)
+ *flags |=3D SfPollAfter;
+}
+POST(sys_rt_sigprocmask)
+{
+ vg_assert(SUCCESS);
+ if (RES =3D=3D 0 && ARG3 !=3D 0)
+ POST_MEM_WRITE( ARG3, sizeof(vki_sigset_t));
+}
+
+PRE(sys_rt_sigpending)
+{
+ PRINT( "sys_rt_sigpending ( %p )", ARG1 );
+ PRE_REG_READ2(long, "rt_sigpending",=20
+ vki_sigset_t *, set, vki_size_t, sigsetsize);
+ PRE_MEM_WRITE( "rt_sigpending(set)", ARG1, sizeof(vki_sigset_t));
+}
+POST(sys_rt_sigpending)
+{
+ POST_MEM_WRITE( ARG1, sizeof(vki_sigset_t) ) ;
+}
+
+PRE(sys_rt_sigtimedwait)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_rt_sigtimedwait ( %p, %p, %p, %lld )",
+ ARG1,ARG2,ARG3,(ULong)ARG4);
+ PRE_REG_READ4(long, "rt_sigtimedwait",=20
+ const vki_sigset_t *, set, vki_siginfo_t *, info,
+ const struct timespec *, timeout, vki_size_t, sigsetsiz=
e);
+ if (ARG1 !=3D 0)=20
+ PRE_MEM_READ( "rt_sigtimedwait(set)", ARG1, sizeof(vki_sigset_t)=
);
+ if (ARG2 !=3D 0)
+ PRE_MEM_WRITE( "rt_sigtimedwait(info)", ARG2, sizeof(vki_siginfo_t=
) );
+ if (ARG3 !=3D 0)
+ PRE_MEM_READ( "rt_sigtimedwait(timeout)",
+ ARG3, sizeof(struct vki_timespec) );
+}
+POST(sys_rt_sigtimedwait)
+{
+ if (ARG2 !=3D 0)
+ POST_MEM_WRITE( ARG2, sizeof(vki_siginfo_t) );
+}
+
+PRE(sys_rt_sigqueueinfo)
+{
+ PRINT("sys_rt_sigqueueinfo(%d, %d, %p)", ARG1, ARG2, ARG3);
+ PRE_REG_READ3(long, "rt_sigqueueinfo",=20
+ int, pid, int, sig, vki_siginfo_t *, uinfo);
+ if (ARG2 !=3D 0)
+ PRE_MEM_READ( "rt_sigqueueinfo(uinfo)", ARG3, sizeof(vki_siginfo_t=
) );
+}
+POST(sys_rt_sigqueueinfo)
+{
+ if (!ML_(client_signal_OK)(ARG2))
+ SET_STATUS_Failure( VKI_EINVAL );
+}
+
+// XXX: x86-specific? The kernel prototypes for the different archs are
+// hard to decipher.
+PRE(sys_rt_sigsuspend)
+{
+ /* The C library interface to sigsuspend just takes a pointer to
+ a signal mask but this system call has two arguments - a pointer
+ to the mask and the number of bytes used by it. The kernel insists
+ on the size being equal to sizeof(sigset_t) however and will just
+ return EINVAL if it isn't.
+ */
+ *flags |=3D SfMayBlock;
+ PRINT("sys_rt_sigsuspend ( %p, %d )", ARG1,ARG2 );
+ PRE_REG_READ2(int, "rt_sigsuspend", vki_sigset_t *, mask, vki_size_t,=
size)
+ if (ARG1 !=3D (Addr)NULL) {
+ PRE_MEM_READ( "rt_sigsuspend(mask)", ARG1, sizeof(vki_sigset_t) );
+ }
+}
+
+/* ---------------------------------------------------------------------
+ linux msg* wrapper helpers
+ ------------------------------------------------------------------ */
+
+void
+ML_(linux_PRE_sys_msgsnd) ( ThreadId tid,
+ UWord arg0, UWord arg1, UWord arg2, UWord ar=
g3 )
+{
+ /* int msgsnd(int msqid, struct msgbuf *msgp, size_t msgsz, int msgfl=
g); */
+ struct vki_msgbuf *msgp =3D (struct vki_msgbuf *)arg1;
+ PRE_MEM_READ( "msgsnd(msgp->mtype)", (Addr)&msgp->mtype, sizeof(msgp-=
>mtype) );
+ PRE_MEM_READ( "msgsnd(msgp->mtext)", (Addr)&msgp->mtext, arg2 );
+}
+
+void
+ML_(linux_PRE_sys_msgrcv) ( ThreadId tid,
+ UWord arg0, UWord arg1, UWord arg2,
+ UWord arg3, UWord arg4 )
+{
+ /* ssize_t msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz,
+ long msgtyp, int msgflg); */
+ struct vki_msgbuf *msgp =3D (struct vki_msgbuf *)arg1;
+ PRE_MEM_WRITE( "msgrcv(msgp->mtype)", (Addr)&msgp->mtype, sizeof(msgp=
->mtype) );
+ PRE_MEM_WRITE( "msgrcv(msgp->mtext)", (Addr)&msgp->mtext, arg2 );
+}
+void
+ML_(linux_POST_sys_msgrcv) ( ThreadId tid,
+ UWord res,
+ UWord arg0, UWord arg1, UWord arg2,
+ UWord arg3, UWord arg4 )
+{
+ struct vki_msgbuf *msgp =3D (struct vki_msgbuf *)arg1;
+ POST_MEM_WRITE( (Addr)&msgp->mtype, sizeof(msgp->mtype) );
+ POST_MEM_WRITE( (Addr)&msgp->mtext, res );
+}
+
+void
+ML_(linux_PRE_sys_msgctl) ( ThreadId tid,
+ UWord arg0, UWord arg1, UWord arg2 )
+{
+ /* int msgctl(int msqid, int cmd, struct msqid_ds *buf); */
+ switch (arg1 /* cmd */) {
+ case VKI_IPC_INFO:
+ case VKI_MSG_INFO:
+ case VKI_IPC_INFO|VKI_IPC_64:
+ case VKI_MSG_INFO|VKI_IPC_64:
+ PRE_MEM_WRITE( "msgctl(IPC_INFO, buf)",
+ arg2, sizeof(struct vki_msginfo) );
+ break;
+ case VKI_IPC_STAT:
+ case VKI_MSG_STAT:
+ PRE_MEM_WRITE( "msgctl(IPC_STAT, buf)",
+ arg2, sizeof(struct vki_msqid_ds) );
+ break;
+ case VKI_IPC_STAT|VKI_IPC_64:
+ case VKI_MSG_STAT|VKI_IPC_64:
+ PRE_MEM_WRITE( "msgctl(IPC_STAT, arg.buf)",
+ arg2, sizeof(struct vki_msqid64_ds) );
+ break;
+ case VKI_IPC_SET:
+ PRE_MEM_READ( "msgctl(IPC_SET, arg.buf)",
+ arg2, sizeof(struct vki_msqid_ds) );
+ break;
+ case VKI_IPC_SET|VKI_IPC_64:
+ PRE_MEM_READ( "msgctl(IPC_SET, arg.buf)",
+ arg2, sizeof(struct vki_msqid64_ds) );
+ break;
+ }
+}
+void
+ML_(linux_POST_sys_msgctl) ( ThreadId tid,
+ UWord res,
+ UWord arg0, UWord arg1, UWord arg2 )
+{
+ switch (arg1 /* cmd */) {
+ case VKI_IPC_INFO:
+ case VKI_MSG_INFO:
+ case VKI_IPC_INFO|VKI_IPC_64:
+ case VKI_MSG_INFO|VKI_IPC_64:
+ POST_MEM_WRITE( arg2, sizeof(struct vki_msginfo) );
+ break;
+ case VKI_IPC_STAT:
+ case VKI_MSG_STAT:
+ POST_MEM_WRITE( arg2, sizeof(struct vki_msqid_ds) );
+ break;
+ case VKI_IPC_STAT|VKI_IPC_64:
+ case VKI_MSG_STAT|VKI_IPC_64:
+ POST_MEM_WRITE( arg2, sizeof(struct vki_msqid64_ds) );
+ break;
+ }
+}
+
#undef PRE
#undef POST
=20
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-08-30 21:07:49 U=
TC (rev 4593)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-08-31 02:44:31 U=
TC (rev 4594)
@@ -1980,7 +1980,7 @@
//.. LINX_(__NR_lchown, sys_lchown16), // 16 ## P
//.. GENX_(__NR_break, sys_ni_syscall), // 17
//.. // (__NR_oldstat, sys_stat), // 18 (obs=
olete)
- GENX_(__NR_lseek, sys_lseek), // 19
+ LINX_(__NR_lseek, sys_lseek), // 19
//..=20
GENX_(__NR_getpid, sys_getpid), // 20
//.. LINX_(__NR_mount, sys_mount), // 21
@@ -1994,7 +1994,7 @@
//.. // (__NR_oldfstat, sys_fstat), // 28 * L =
-- obsolete
GENX_(__NR_pause, sys_pause), // 29
//..=20
- GENX_(__NR_utime, sys_utime), // 30
+ LINX_(__NR_utime, sys_utime), // 30
//.. GENX_(__NR_stty, sys_ni_syscall), // 31
//.. GENX_(__NR_gtty, sys_ni_syscall), // 32
GENX_(__NR_access, sys_access), // 33
@@ -2008,7 +2008,7 @@
=20
GENX_(__NR_rmdir, sys_rmdir), // 40
GENXY(__NR_dup, sys_dup), // 41
- GENXY(__NR_pipe, sys_pipe), // 42
+ LINXY(__NR_pipe, sys_pipe), // 42
GENXY(__NR_times, sys_times), // 43
//.. GENX_(__NR_prof, sys_ni_syscall), // 44
//..=20
@@ -2045,7 +2045,7 @@
//.. LINX_(__NR_setreuid, sys_setreuid16), // 70
//.. LINX_(__NR_setregid, sys_setregid16), // 71
//.. GENX_(__NR_sigsuspend, sys_sigsuspend), // 72
-//.. GENXY(__NR_sigpending, sys_sigpending), // 73
+//.. LINXY(__NR_sigpending, sys_sigpending), // 73
//.. // (__NR_sethostname, sys_sethostname), // 74 */*
//..=20
GENX_(__NR_setrlimit, sys_setrlimit), // 75
@@ -2109,7 +2109,7 @@
//.. LINXY(__NR_adjtimex, sys_adjtimex), // 124
//..=20
GENXY(__NR_mprotect, sys_mprotect), // 125
- GENXY(__NR_sigprocmask, sys_sigprocmask), // 126
+ LINXY(__NR_sigprocmask, sys_sigprocmask), // 126
//.. // Nb: create_module() was removed 2.4-->2.6
//.. GENX_(__NR_create_module, sys_ni_syscall), // 127
//.. GENX_(__NR_init_module, sys_init_module), // 128
@@ -2117,7 +2117,7 @@
//..=20
//.. // Nb: get_kernel_syms() was removed 2.4-->2.6
//.. GENX_(__NR_get_kernel_syms, sys_ni_syscall), // 130
-//.. GENX_(__NR_quotactl, sys_quotactl), // 131
+//.. LINX_(__NR_quotactl, sys_quotactl), // 131
GENX_(__NR_getpgid, sys_getpgid), // 132
//.. GENX_(__NR_fchdir, sys_fchdir), // 133
//.. // (__NR_bdflush, sys_bdflush), // 134 */L=
inux
@@ -2143,7 +2143,7 @@
//.. GENX_(__NR_mlock, sys_mlock), // 150
//.. GENX_(__NR_munlock, sys_munlock), // 151
//.. GENX_(__NR_mlockall, sys_mlockall), // 152
-//.. GENX_(__NR_munlockall, sys_munlockall), // 153
+//.. LINX_(__NR_munlockall, sys_munlockall), // 153
//.. LINXY(__NR_sched_setparam, sys_sched_setparam), // 154
//..=20
LINXY(__NR_sched_getparam, sys_sched_getparam), // 155
@@ -2168,13 +2168,13 @@
LINXY(__NR_getresgid, sys_getresgid16), // 170
LINX_(__NR_prctl, sys_prctl), // 171
//.. PLAX_(__NR_rt_sigreturn, sys_rt_sigreturn), // 172
- GENXY(__NR_rt_sigaction, sys_rt_sigaction), // 173
+ LINXY(__NR_rt_sigaction, sys_rt_sigaction), // 173
=20
- GENXY(__NR_rt_sigprocmask, sys_rt_sigprocmask), // 174
-//.. GENXY(__NR_rt_sigpending, sys_rt_sigpending), // 175
- GENXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait), // 176
-//.. GENXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo), // 177
-//.. GENX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 178
+ LINXY(__NR_rt_sigprocmask, sys_rt_sigprocmask), // 174
+//.. LINXY(__NR_rt_sigpending, sys_rt_sigpending), // 175
+ LINXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait), // 176
+//.. LINXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo), // 177
+//.. LINX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 178
//..=20
GENXY(__NR_pread64, sys_pread64), // 179
GENX_(__NR_pwrite64, sys_pwrite64), // 180
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-08-30 21:07:49 UTC=
(rev 4593)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-08-31 02:44:31 UTC=
(rev 4594)
@@ -1350,7 +1350,7 @@
*flags |=3D SfMayBlock;
break;
case VKI_MSGSND:
- ML_(generic_PRE_sys_msgsnd)( tid, ARG2, ARG5, ARG3, ARG4 );
+ ML_(linux_PRE_sys_msgsnd)( tid, ARG2, ARG5, ARG3, ARG4 );
if ((ARG4 & VKI_IPC_NOWAIT) =3D=3D 0)
*flags |=3D SfMayBlock;
break;
@@ -1366,7 +1366,7 @@
(Addr) (&((struct vki_ipc_kludge *)ARG5)->msgtyp),
"msgrcv(msgp)" );
=20
- ML_(generic_PRE_sys_msgrcv)( tid, ARG2, msgp, ARG3, msgtyp, ARG4 )=
;
+ ML_(linux_PRE_sys_msgrcv)( tid, ARG2, msgp, ARG3, msgtyp, ARG4 );
=20
if ((ARG4 & VKI_IPC_NOWAIT) =3D=3D 0)
*flags |=3D SfMayBlock;
@@ -1375,7 +1375,7 @@
case VKI_MSGGET:
break;
case VKI_MSGCTL:
- ML_(generic_PRE_sys_msgctl)( tid, ARG2, ARG3, ARG5 );
+ ML_(linux_PRE_sys_msgctl)( tid, ARG2, ARG3, ARG5 );
break;
case VKI_SHMAT:
{
@@ -1432,13 +1432,13 @@
(Addr) (&((struct vki_ipc_kludge *)ARG5)->msgtyp),
"msgrcv(msgp)" );
=20
- ML_(generic_POST_sys_msgrcv)( tid, RES, ARG2, msgp, ARG3, msgtyp, =
ARG4 );
+ ML_(linux_POST_sys_msgrcv)( tid, RES, ARG2, msgp, ARG3, msgtyp, AR=
G4 );
break;
}
case VKI_MSGGET:
break;
case VKI_MSGCTL:
- ML_(generic_POST_sys_msgctl)( tid, RES, ARG2, ARG3, ARG5 );
+ ML_(linux_POST_sys_msgctl)( tid, RES, ARG2, ARG3, ARG5 );
break;
case VKI_SHMAT:
{
@@ -1962,7 +1962,7 @@
//zz LINX_(__NR_lchown, sys_lchown16), // 16
GENX_(__NR_break, sys_ni_syscall), // 17
//zz // (__NR_oldstat, sys_stat), // 18 (obsole=
te)
- GENX_(__NR_lseek, sys_lseek), // 19
+ LINX_(__NR_lseek, sys_lseek), // 19
=20
GENX_(__NR_getpid, sys_getpid), // 20
LINX_(__NR_mount, sys_mount), // 21
@@ -1976,7 +1976,7 @@
//zz // (__NR_oldfstat, sys_fstat), // 28 * L -- =
obsolete
GENX_(__NR_pause, sys_pause), // 29
=20
- GENX_(__NR_utime, sys_utime), // 30
+ LINX_(__NR_utime, sys_utime), // 30
GENX_(__NR_stty, sys_ni_syscall), // 31
GENX_(__NR_gtty, sys_ni_syscall), // 32
GENX_(__NR_access, sys_access), // 33
@@ -1990,7 +1990,7 @@
=20
GENX_(__NR_rmdir, sys_rmdir), // 40
GENXY(__NR_dup, sys_dup), // 41
- GENXY(__NR_pipe, sys_pipe), // 42
+ LINXY(__NR_pipe, sys_pipe), // 42
GENXY(__NR_times, sys_times), // 43
GENX_(__NR_prof, sys_ni_syscall), // 44
//zz=20
@@ -2027,7 +2027,7 @@
LINX_(__NR_setreuid, sys_setreuid16), // 70
LINX_(__NR_setregid, sys_setregid16), // 71
//zz GENX_(__NR_sigsuspend, sys_sigsuspend), // 72
- GENXY(__NR_sigpending, sys_sigpending), // 73
+ LINXY(__NR_sigpending, sys_sigpending), // 73
//zz // (__NR_sethostname, sys_sethostname), // 74 */*
//zz=20
GENX_(__NR_setrlimit, sys_setrlimit), // 75
@@ -2091,7 +2091,7 @@
//zz LINXY(__NR_adjtimex, sys_adjtimex), // 124
//zz=20
GENXY(__NR_mprotect, sys_mprotect), // 125
- GENXY(__NR_sigprocmask, sys_sigprocmask), // 126
+ LINXY(__NR_sigprocmask, sys_sigprocmask), // 126
//zz // Nb: create_module() was removed 2.4-->2.6
GENX_(__NR_create_module, sys_ni_syscall), // 127
GENX_(__NR_init_module, sys_init_module), // 128
@@ -2099,7 +2099,7 @@
//zz=20
//zz // Nb: get_kernel_syms() was removed 2.4-->2.6
GENX_(__NR_get_kernel_syms, sys_ni_syscall), // 130
- GENX_(__NR_quotactl, sys_quotactl), // 131
+ LINX_(__NR_quotactl, sys_quotactl), // 131
GENX_(__NR_getpgid, sys_getpgid), // 132
GENX_(__NR_fchdir, sys_fchdir), // 133
//zz // (__NR_bdflush, sys_bdflush), // 134 */Linu=
x
@@ -2125,7 +2125,7 @@
GENX_(__NR_mlock, sys_mlock), // 150
GENX_(__NR_munlock, sys_munlock), // 151
GENX_(__NR_mlockall, sys_mlockall), // 152
- GENX_(__NR_munlockall, sys_munlockall), // 153
+ LINX_(__NR_munlockall, sys_munlockall), // 153
LINXY(__NR_sched_setparam, sys_sched_setparam), // 154
=20
LINXY(__NR_sched_getparam, sys_sched_getparam), // 155
@@ -2150,13 +2150,13 @@
LINXY(__NR_getresgid, sys_getresgid16), // 171
LINX_(__NR_prctl, sys_prctl), // 172
PLAX_(__NR_rt_sigreturn, sys_rt_sigreturn), // 173 x86/Linux o=
nly?
- GENXY(__NR_rt_sigaction, sys_rt_sigaction), // 174
+ LINXY(__NR_rt_sigaction, sys_rt_sigaction), // 174
=20
- GENXY(__NR_rt_sigprocmask, sys_rt_sigprocmask), // 175
- GENXY(__NR_rt_sigpending, sys_rt_sigpending), // 176
- GENXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait),// 177
- GENXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo),// 178
- GENX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 179
+ LINXY(__NR_rt_sigprocmask, sys_rt_sigprocmask), // 175
+ LINXY(__NR_rt_sigpending, sys_rt_sigpending), // 176
+ LINXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait),// 177
+ LINXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo),// 178
+ LINX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 179
=20
GENXY(__NR_pread64, sys_pread64), // 180
GENX_(__NR_pwrite64, sys_pwrite64), // 181
@@ -2283,7 +2283,7 @@
LINX_(__NR_mq_notify, sys_mq_notify), // (mq_open+4)
LINXY(__NR_mq_getsetattr, sys_mq_getsetattr), // (mq_open+5)
GENX_(__NR_sys_kexec_load, sys_ni_syscall), // 283
- GENXY(__NR_waitid, sys_waitid), // 284
+ LINXY(__NR_waitid, sys_waitid), // 284
=20
GENX_(285, sys_ni_syscall), // 285
// LINX_(__NR_add_key, sys_add_key), // 286
|
|
From: Tom H. <to...@co...> - 2005-08-31 02:41:18
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-08-31 03:30:04 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 187 tests, 5 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-08-31 02:28:28
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-08-31 03:15:03 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 186 tests, 14 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-08-31 02:24:07
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-08-31 03:10:05 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 186 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-08-31 02:19:58
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-08-31 03:10:05 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 164 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) |
|
From: Tom H. <th...@cy...> - 2005-08-31 02:16:34
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-08-31 03:05:09 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 164 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) |