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
(21) |
2
(18) |
3
(19) |
4
(17) |
|
5
(6) |
6
(5) |
7
(9) |
8
(21) |
9
(16) |
10
(21) |
11
(22) |
|
12
(19) |
13
(19) |
14
(8) |
15
(16) |
16
(17) |
17
(16) |
18
(33) |
|
19
(33) |
20
(34) |
21
(32) |
22
(26) |
23
(23) |
24
(16) |
25
(21) |
|
26
(19) |
27
(7) |
28
(29) |
29
(27) |
30
(55) |
|
|
|
From: <sv...@va...> - 2005-06-08 23:39:16
|
Author: sewardj
Date: 2005-06-09 00:38:32 +0100 (Thu, 09 Jun 2005)
New Revision: 3854
Log:
Clean up after m_syscalls changes: reinstate about half the syscalls
needed to make memcheck/tests/x86/scalar work again.
Modified:
trunk/coregrind/m_syscalls/syscalls-generic.c
trunk/coregrind/m_syscalls/syscalls-linux.c
trunk/coregrind/m_syscalls/syscalls-x86-linux.c
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-generic.c 2005-06-08 10:46:56 UTC=
(rev 3853)
+++ trunk/coregrind/m_syscalls/syscalls-generic.c 2005-06-08 23:38:32 UTC=
(rev 3854)
@@ -1684,12 +1684,12 @@
SET_STATUS_Failure( VKI_ENOSYS );
}
=20
-//zz PRE(sys_iopl, 0)
-//zz {
-//zz PRINT("sys_iopl ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "iopl", unsigned long, level);
-//zz }
-//zz=20
+PRE(sys_iopl)
+{
+ PRINT("sys_iopl ( %d )", ARG1);
+ PRE_REG_READ1(long, "iopl", unsigned long, level);
+}
+
//zz PRE(sys_setxattr, SfMayBlock)
//zz {
//zz PRINT("sys_setxattr ( %p, %p, %p, %llu, %d )",
@@ -1842,16 +1842,16 @@
//zz PRE_REG_READ2(long, "fremovexattr", int, fd, char *, name);
//zz PRE_MEM_RASCIIZ( "fremovexattr(name)", ARG2 );
//zz }
-//zz=20
-//zz PRE(sys_quotactl, 0)
-//zz {
-//zz PRINT("sys_quotactl (0x%x, %p, 0x%x, 0x%x )", ARG1,ARG2,ARG3, AR=
G4);
-//zz PRE_REG_READ4(long, "quotactl",
-//zz unsigned int, cmd, const char *, special, vki_qid_=
t, id,
-//zz void *, addr);
-//zz PRE_MEM_RASCIIZ( "quotactl(special)", ARG2 );
-//zz }
-//zz=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 );
+}
+
//zz // XXX: this wrapper is only suitable for 32-bit platforms
//zz PRE(sys_lookup_dcookie, 0)
//zz {
@@ -1875,20 +1875,22 @@
PRE_REG_READ1(long, "fsync", unsigned int, fd);
}
=20
-//zz PRE(sys_fdatasync, SfMayBlock)
-//zz {
-//zz PRINT("sys_fdatasync ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "fdatasync", unsigned int, fd);
-//zz }
-//zz=20
-//zz PRE(sys_msync, SfMayBlock)
-//zz {
-//zz PRINT("sys_msync ( %p, %llu, %d )", ARG1,(ULong)ARG2,ARG3);
-//zz PRE_REG_READ3(long, "msync",
-//zz unsigned long, start, vki_size_t, length, int, fla=
gs);
-//zz PRE_MEM_READ( "msync(start)", ARG1, ARG2 );
-//zz }
-//zz=20
+PRE(sys_fdatasync)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_fdatasync ( %d )", ARG1);
+ PRE_REG_READ1(long, "fdatasync", unsigned int, fd);
+}
+
+PRE(sys_msync)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_msync ( %p, %llu, %d )", ARG1,(ULong)ARG2,ARG3);
+ PRE_REG_READ3(long, "msync",
+ unsigned long, start, vki_size_t, length, int, flags);
+ PRE_MEM_READ( "msync(start)", ARG1, ARG2 );
+}
+
//zz // Nb: getpmsg() and putpmsg() are special additional syscalls used=
in early
//zz // versions of LiS (Linux Streams). They are not part of the kerne=
l.
//zz // Therefore, we have to provide this type ourself, rather than get=
ting it
@@ -1951,47 +1953,47 @@
//zz if (data && data->len > 0)
//zz PRE_MEM_READ( "putpmsg(data)", (Addr)data->buf, data->len);
//zz }
-//zz=20
-//zz PRE(sys_getitimer, 0)
-//zz {
-//zz PRINT("sys_getitimer ( %d, %p )", ARG1, ARG2);
-//zz PRE_REG_READ2(long, "getitimer", int, which, struct itimerval *,=
value);
-//zz PRE_MEM_WRITE( "getitimer(value)", ARG2, sizeof(struct vki_itime=
rval) );
-//zz }
-//zz=20
-//zz POST(sys_getitimer)
-//zz {
-//zz if (ARG2 !=3D (Addr)NULL) {
-//zz POST_MEM_WRITE(ARG2, sizeof(struct vki_itimerval));
-//zz }
-//zz }
-//zz=20
-//zz PRE(sys_setitimer, 0)
-//zz {
-//zz PRINT("sys_setitimer ( %d, %p, %p )", ARG1,ARG2,ARG3);
-//zz PRE_REG_READ3(long, "setitimer",=20
-//zz int, which,
-//zz struct itimerval *, value, struct itimerval *, ova=
lue);
-//zz if (ARG2 !=3D (Addr)NULL)
-//zz PRE_MEM_READ( "setitimer(value)", ARG2, sizeof(struct vki_iti=
merval) );
-//zz if (ARG3 !=3D (Addr)NULL)
-//zz PRE_MEM_WRITE( "setitimer(ovalue)", ARG3, sizeof(struct vki_i=
timerval));
-//zz }
-//zz=20
-//zz POST(sys_setitimer)
-//zz {
-//zz if (ARG3 !=3D (Addr)NULL) {
-//zz POST_MEM_WRITE(ARG3, sizeof(struct vki_itimerval));
-//zz }
-//zz }
-//zz=20
-//zz PRE(sys_chroot, 0)
-//zz {
-//zz PRINT("sys_chroot ( %p )", ARG1);
-//zz PRE_REG_READ1(long, "chroot", const char *, path);
-//zz PRE_MEM_RASCIIZ( "chroot(path)", ARG1 );
-//zz }
=20
+PRE(sys_getitimer)
+{
+ PRINT("sys_getitimer ( %d, %p )", ARG1, ARG2);
+ PRE_REG_READ2(long, "getitimer", int, which, struct itimerval *, valu=
e);
+ PRE_MEM_WRITE( "getitimer(value)", ARG2, sizeof(struct vki_itimerval)=
);
+}
+
+POST(sys_getitimer)
+{
+ if (ARG2 !=3D (Addr)NULL) {
+ POST_MEM_WRITE(ARG2, sizeof(struct vki_itimerval));
+ }
+}
+
+PRE(sys_setitimer)
+{
+ PRINT("sys_setitimer ( %d, %p, %p )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "setitimer",=20
+ int, which,
+ struct itimerval *, value, struct itimerval *, ovalue);
+ if (ARG2 !=3D (Addr)NULL)
+ PRE_MEM_READ( "setitimer(value)", ARG2, sizeof(struct vki_itimerva=
l) );
+ if (ARG3 !=3D (Addr)NULL)
+ PRE_MEM_WRITE( "setitimer(ovalue)", ARG3, sizeof(struct vki_itimer=
val));
+}
+
+POST(sys_setitimer)
+{
+ if (ARG3 !=3D (Addr)NULL) {
+ POST_MEM_WRITE(ARG3, sizeof(struct vki_itimerval));
+ }
+}
+
+PRE(sys_chroot)
+{
+ PRINT("sys_chroot ( %p )", ARG1);
+ PRE_REG_READ1(long, "chroot", const char *, path);
+ PRE_MEM_RASCIIZ( "chroot(path)", ARG1 );
+}
+
PRE(sys_madvise)
{
*flags |=3D SfMayBlock;
@@ -2037,30 +2039,34 @@
ARG3, sizeof(struct vki_sched_param));
}
=20
-//zz PRE(sys_mlock, SfMayBlock)
-//zz {
-//zz PRINT("sys_mlock ( %p, %llu )", ARG1, (ULong)ARG2);
-//zz PRE_REG_READ2(long, "mlock", unsigned long, addr, vki_size_t, le=
n);
-//zz }
-//zz=20
-//zz PRE(sys_munlock, SfMayBlock)
-//zz {
-//zz PRINT("sys_munlock ( %p, %llu )", ARG1, (ULong)ARG2);
-//zz PRE_REG_READ2(long, "munlock", unsigned long, addr, vki_size_t, =
len);
-//zz }
-//zz=20
-//zz PRE(sys_mlockall, SfMayBlock)
-//zz {
-//zz PRINT("sys_mlockall ( %x )", ARG1);
-//zz PRE_REG_READ1(long, "mlockall", int, flags);
-//zz }
-//zz=20
-//zz PRE(sys_munlockall, SfMayBlock)
-//zz {
-//zz PRINT("sys_munlockall ( )");
-//zz PRE_REG_READ0(long, "munlockall");
-//zz }
+PRE(sys_mlock)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_mlock ( %p, %llu )", ARG1, (ULong)ARG2);
+ PRE_REG_READ2(long, "mlock", unsigned long, addr, vki_size_t, len);
+}
=20
+PRE(sys_munlock)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_munlock ( %p, %llu )", ARG1, (ULong)ARG2);
+ PRE_REG_READ2(long, "munlock", unsigned long, addr, vki_size_t, len);
+}
+
+PRE(sys_mlockall)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_mlockall ( %x )", ARG1);
+ PRE_REG_READ1(long, "mlockall", int, flags);
+}
+
+PRE(sys_munlockall)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_munlockall ( )");
+ PRE_REG_READ0(long, "munlockall");
+}
+
PRE(sys_sched_get_priority_max)
{
PRINT("sched_get_priority_max ( %d )", ARG1);
@@ -2073,24 +2079,24 @@
PRE_REG_READ1(long, "sched_get_priority_min", int, policy);
}
=20
-//zz PRE(sys_setpriority, 0)
-//zz {
-//zz PRINT("sys_setpriority ( %d, %d, %d )", ARG1, ARG2, ARG3);
-//zz PRE_REG_READ3(long, "setpriority", int, which, int, who, int, pr=
io);
-//zz }
-//zz=20
-//zz PRE(sys_getpriority, 0)
-//zz {
-//zz PRINT("sys_getpriority ( %d, %d )", ARG1, ARG2);
-//zz PRE_REG_READ2(long, "getpriority", int, which, int, who);
-//zz }
-//zz=20
-//zz PRE(sys_setregid16, 0)
-//zz {
-//zz PRINT("sys_setregid16 ( %d, %d )", ARG1, ARG2);
-//zz PRE_REG_READ2(long, "setregid16", vki_old_gid_t, rgid, vki_old_g=
id_t, egid);
-//zz }
-//zz=20
+PRE(sys_setpriority)
+{
+ PRINT("sys_setpriority ( %d, %d, %d )", ARG1, ARG2, ARG3);
+ PRE_REG_READ3(long, "setpriority", int, which, int, who, int, prio);
+}
+
+PRE(sys_getpriority)
+{
+ PRINT("sys_getpriority ( %d, %d )", ARG1, ARG2);
+ PRE_REG_READ2(long, "getpriority", int, which, int, who);
+}
+
+PRE(sys_setregid16)
+{
+ PRINT("sys_setregid16 ( %d, %d )", ARG1, ARG2);
+ PRE_REG_READ2(long, "setregid16", vki_old_gid_t, rgid, vki_old_gid_t,=
egid);
+}
+
//zz // XXX: only for 32-bit archs
//zz PRE(sys_pwrite64, SfMayBlock)
//zz {
@@ -2109,19 +2115,19 @@
PRE_REG_READ0(long, "sync");
}
=20
-//zz PRE(sys_fstatfs, 0)
-//zz {
-//zz PRINT("sys_fstatfs ( %d, %p )",ARG1,ARG2);
-//zz PRE_REG_READ2(long, "fstatfs",
-//zz unsigned int, fd, struct statfs *, buf);
-//zz PRE_MEM_WRITE( "fstatfs(buf)", ARG2, sizeof(struct vki_statfs) )=
;
-//zz }
-//zz=20
-//zz POST(sys_fstatfs)
-//zz {
-//zz POST_MEM_WRITE( ARG2, sizeof(struct vki_statfs) );
-//zz }
-//zz=20
+PRE(sys_fstatfs)
+{
+ PRINT("sys_fstatfs ( %d, %p )",ARG1,ARG2);
+ PRE_REG_READ2(long, "fstatfs",
+ unsigned int, fd, struct statfs *, buf);
+ PRE_MEM_WRITE( "fstatfs(buf)", ARG2, sizeof(struct vki_statfs) );
+}
+
+POST(sys_fstatfs)
+{
+ POST_MEM_WRITE( ARG2, sizeof(struct vki_statfs) );
+}
+
//zz PRE(sys_fstatfs64, 0)
//zz {
//zz PRINT("sys_fstatfs64 ( %d, %llu, %p )",ARG1,(ULong)ARG2,ARG3);
@@ -2134,13 +2140,13 @@
//zz {
//zz POST_MEM_WRITE( ARG3, ARG2 );
//zz }
-//zz=20
-//zz PRE(sys_getsid, 0)
-//zz {
-//zz PRINT("sys_getsid ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "getsid", vki_pid_t, pid);
-//zz }
-//zz=20
+
+PRE(sys_getsid)
+{
+ PRINT("sys_getsid ( %d )", ARG1);
+ PRE_REG_READ1(long, "getsid", vki_pid_t, pid);
+}
+
//zz // XXX: only for 32-bit archs
//zz PRE(sys_pread64, SfMayBlock)
//zz {
@@ -2167,21 +2173,24 @@
PRE_MEM_RASCIIZ( "mknod(pathname)", ARG1 );
}
=20
-//zz PRE(sys_flock, SfMayBlock)
-//zz {
-//zz PRINT("sys_flock ( %d, %d )", ARG1, ARG2 );
-//zz PRE_REG_READ2(long, "flock", unsigned int, fd, unsigned int, ope=
ration);
-//zz }
-//zz=20
-//zz PRE(sys_init_module, SfMayBlock)
-//zz {
-//zz PRINT("sys_init_module ( %p, %llu, %p )", ARG1, (ULong)ARG2, ARG=
3 );
-//zz PRE_REG_READ3(long, "init_module",
-//zz void *, umod, unsigned long, len, const char *, ua=
rgs);
-//zz PRE_MEM_READ( "init_module(umod)", ARG1, ARG2 );
-//zz PRE_MEM_RASCIIZ( "init_module(uargs)", ARG3 );
-//zz }
-//zz=20
+PRE(sys_flock)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_flock ( %d, %d )", ARG1, ARG2 );
+ PRE_REG_READ2(long, "flock", unsigned int, fd, unsigned int, operatio=
n);
+}
+
+/* This surely isn't remotely generic -- move to linux-specifics? */
+PRE(sys_init_module)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_init_module ( %p, %llu, %p )", ARG1, (ULong)ARG2, ARG3 );
+ PRE_REG_READ3(long, "init_module",
+ void *, umod, unsigned long, len, const char *, uargs);
+ PRE_MEM_READ( "init_module(umod)", ARG1, ARG2 );
+ PRE_MEM_RASCIIZ( "init_module(uargs)", ARG3 );
+}
+
//zz PRE(sys_capget, 0)
//zz {
//zz PRINT("sys_capget ( %p, %p )", ARG1, ARG2 );
@@ -2514,92 +2523,93 @@
VG_(record_fd_open)(tid, RES, VG_(resolve_filename)(RES));
}
=20
-//zz PRE(sys_fchdir, 0)
-//zz {
-//zz PRINT("sys_fchdir ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "fchdir", unsigned int, fd);
-//zz }
-//zz=20
-//zz PRE(sys_fchown16, 0)
-//zz {
-//zz PRINT("sys_fchown16 ( %d, %d, %d )", ARG1,ARG2,ARG3);
-//zz PRE_REG_READ3(long, "fchown16",
-//zz unsigned int, fd, vki_old_uid_t, owner, vki_old_gi=
d_t, group);
-//zz }
-//zz=20
+PRE(sys_fchdir)
+{
+ PRINT("sys_fchdir ( %d )", ARG1);
+ PRE_REG_READ1(long, "fchdir", unsigned int, fd);
+}
+
+PRE(sys_fchown16)
+{
+ PRINT("sys_fchown16 ( %d, %d, %d )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "fchown16",
+ unsigned int, fd, vki_old_uid_t, owner, vki_old_gid_t, =
group);
+}
+
//zz PRE(sys_fchown, 0)
//zz {
//zz PRINT("sys_fchown ( %d, %d, %d )", ARG1,ARG2,ARG3);
//zz PRE_REG_READ3(long, "fchown",
//zz unsigned int, fd, vki_uid_t, owner, vki_gid_t, gro=
up);
//zz }
-//zz=20
-//zz PRE(sys_fchmod, 0)
-//zz {
-//zz PRINT("sys_fchmod ( %d, %d )", ARG1,ARG2);
-//zz PRE_REG_READ2(long, "fchmod", unsigned int, fildes, vki_mode_t, =
mode);
-//zz }
-//zz=20
-//zz PRE(sys_fcntl, 0)
-//zz {
-//zz switch (ARG2) {
-//zz // These ones ignore ARG3.
-//zz case VKI_F_GETFD:
-//zz case VKI_F_GETFL:
-//zz case VKI_F_GETOWN:
-//zz case VKI_F_SETOWN:
-//zz case VKI_F_GETSIG:
-//zz case VKI_F_SETSIG:
-//zz case VKI_F_GETLEASE:
-//zz PRINT("sys_fcntl ( %d, %d )", ARG1,ARG2);
-//zz PRE_REG_READ2(long, "fcntl", unsigned int, fd, unsigned int, =
cmd);
-//zz break;
-//zz=20
-//zz // These ones use ARG3 as "arg".
-//zz case VKI_F_DUPFD:
-//zz case VKI_F_SETFD:
-//zz case VKI_F_SETFL:
-//zz case VKI_F_SETLEASE:
-//zz case VKI_F_NOTIFY:
-//zz PRINT("sys_fcntl[ARG3=3D=3D'arg'] ( %d, %d, %d )", ARG1,ARG2,=
ARG3);
-//zz PRE_REG_READ3(long, "fcntl",
-//zz unsigned int, fd, unsigned int, cmd, unsigned l=
ong, arg);
-//zz break;
-//zz=20
-//zz // These ones use ARG3 as "lock".
-//zz case VKI_F_GETLK:
-//zz case VKI_F_SETLK:
-//zz case VKI_F_SETLKW:
-//zz #ifndef __amd64__
-//zz case VKI_F_GETLK64:
-//zz case VKI_F_SETLK64:
-//zz case VKI_F_SETLKW64:
-//zz #else
-//zz #endif
-//zz PRINT("sys_fcntl[ARG3=3D=3D'lock'] ( %d, %d, %p )", ARG1,ARG2=
,ARG3);
-//zz PRE_REG_READ3(long, "fcntl",
-//zz unsigned int, fd, unsigned int, cmd,
-//zz struct flock64 *, lock);
-//zz break;
-//zz }
-//zz=20
-//zz //if (ARG2 =3D=3D VKI_F_SETLKW)
-//zz // tst->sys_flags |=3D SfMayBlock;
-//zz }
-//zz=20
-//zz POST(sys_fcntl)
-//zz {
-//zz if (ARG2 =3D=3D VKI_F_DUPFD) {
-//zz if (!VG_(fd_allowed)(RES, "fcntl(DUPFD)", tid, True)) {
-//zz VG_(close)(RES);
-//zz SET_STATUS_( -VKI_EMFILE );
-//zz } else {
-//zz if (VG_(clo_track_fds))
-//zz VG_(record_fd_open)(tid, RES, VG_(resolve_filename)(RES=
));
-//zz }
-//zz }
-//zz }
=20
+PRE(sys_fchmod)
+{
+ PRINT("sys_fchmod ( %d, %d )", ARG1,ARG2);
+ PRE_REG_READ2(long, "fchmod", unsigned int, fildes, vki_mode_t, mode)=
;
+}
+
+PRE(sys_fcntl)
+{
+ switch (ARG2) {
+ // These ones ignore ARG3.
+ case VKI_F_GETFD:
+ case VKI_F_GETFL:
+ case VKI_F_GETOWN:
+ case VKI_F_SETOWN:
+ case VKI_F_GETSIG:
+ case VKI_F_SETSIG:
+ case VKI_F_GETLEASE:
+ PRINT("sys_fcntl ( %d, %d )", ARG1,ARG2);
+ PRE_REG_READ2(long, "fcntl", unsigned int, fd, unsigned int, cmd);
+ break;
+
+ // These ones use ARG3 as "arg".
+ case VKI_F_DUPFD:
+ case VKI_F_SETFD:
+ case VKI_F_SETFL:
+ case VKI_F_SETLEASE:
+ case VKI_F_NOTIFY:
+ PRINT("sys_fcntl[ARG3=3D=3D'arg'] ( %d, %d, %d )", ARG1,ARG2,ARG3)=
;
+ PRE_REG_READ3(long, "fcntl",
+ unsigned int, fd, unsigned int, cmd, unsigned long, =
arg);
+ break;
+
+ // These ones use ARG3 as "lock".
+ case VKI_F_GETLK:
+ case VKI_F_SETLK:
+ case VKI_F_SETLKW:
+# if defined(VGP_amd64_linux)
+ case VKI_F_GETLK64:
+ case VKI_F_SETLK64:
+ case VKI_F_SETLKW64:
+# else
+# endif
+ PRINT("sys_fcntl[ARG3=3D=3D'lock'] ( %d, %d, %p )", ARG1,ARG2,ARG3=
);
+ PRE_REG_READ3(long, "fcntl",
+ unsigned int, fd, unsigned int, cmd,
+ struct flock64 *, lock);
+ break;
+ }
+
+ if (ARG2 =3D=3D VKI_F_SETLKW)
+ *flags |=3D SfMayBlock;
+}
+
+POST(sys_fcntl)
+{
+ vg_assert(SUCCESS);
+ if (ARG2 =3D=3D VKI_F_DUPFD) {
+ if (!VG_(fd_allowed)(RES, "fcntl(DUPFD)", tid, True)) {
+ VG_(close)(RES);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ if (VG_(clo_track_fds))
+ VG_(record_fd_open)(tid, RES, VG_(resolve_filename)(RES));
+ }
+ }
+}
+
// XXX: wrapper only suitable for 32-bit systems
PRE(sys_fcntl64)
{
@@ -2667,18 +2677,18 @@
}
}
=20
-//zz PRE(sys_newfstat, 0)
-//zz {
-//zz PRINT("sys_newfstat ( %d, %p )", ARG1,ARG2);
-//zz PRE_REG_READ2(long, "fstat", unsigned int, fd, struct stat *, bu=
f);
-//zz PRE_MEM_WRITE( "fstat(buf)", ARG2, sizeof(struct vki_stat) );
-//zz }
-//zz=20
-//zz POST(sys_newfstat)
-//zz {
-//zz POST_MEM_WRITE( ARG2, sizeof(struct vki_stat) );
-//zz }
+PRE(sys_newfstat)
+{
+ PRINT("sys_newfstat ( %d, %p )", ARG1,ARG2);
+ PRE_REG_READ2(long, "fstat", unsigned int, fd, struct stat *, buf);
+ PRE_MEM_WRITE( "fstat(buf)", ARG2, sizeof(struct vki_stat) );
+}
=20
+POST(sys_newfstat)
+{
+ POST_MEM_WRITE( ARG2, sizeof(struct vki_stat) );
+}
+
static vki_sigset_t fork_saved_mask;
=20
// In Linux, the sys_fork() function varies across architectures, but we
@@ -2723,14 +2733,15 @@
PRE_REG_READ2(long, "ftruncate", unsigned int, fd, unsigned long, len=
gth);
}
=20
-//zz PRE(sys_truncate, SfMayBlock)
-//zz {
-//zz PRINT("sys_truncate ( %p(%s), %d )", ARG1,ARG1,ARG2);
-//zz PRE_REG_READ2(long, "truncate",=20
-//zz const char *, path, unsigned long, length);
-//zz PRE_MEM_RASCIIZ( "truncate(path)", ARG1 );
-//zz }
-//zz=20
+PRE(sys_truncate)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_truncate ( %p(%s), %d )", ARG1,ARG1,ARG2);
+ PRE_REG_READ2(long, "truncate",=20
+ const char *, path, unsigned long, length);
+ PRE_MEM_RASCIIZ( "truncate(path)", ARG1 );
+}
+
//zz // XXX: this wrapper is only suitable for 32-bit platforms
//zz PRE(sys_ftruncate64, SfMayBlock)
//zz {
@@ -2785,20 +2796,21 @@
POST_MEM_WRITE( ARG2, RES );
}
=20
-//zz PRE(sys_getgroups16, 0)
-//zz {
-//zz PRINT("sys_getgroups16 ( %d, %p )", ARG1, ARG2);
-//zz PRE_REG_READ2(long, "getgroups16", int, size, vki_old_gid_t *, l=
ist);
-//zz if (ARG1 > 0)
-//zz PRE_MEM_WRITE( "getgroups16(list)", ARG2, ARG1 * sizeof(vki_o=
ld_gid_t) );
-//zz }
-//zz=20
-//zz POST(sys_getgroups16)
-//zz {
-//zz if (ARG1 > 0 && RES > 0)
-//zz POST_MEM_WRITE( ARG2, RES * sizeof(vki_old_gid_t) );
-//zz }
+PRE(sys_getgroups16)
+{
+ PRINT("sys_getgroups16 ( %d, %p )", ARG1, ARG2);
+ PRE_REG_READ2(long, "getgroups16", int, size, vki_old_gid_t *, list);
+ if (ARG1 > 0)
+ PRE_MEM_WRITE( "getgroups16(list)", ARG2, ARG1 * sizeof(vki_old_gi=
d_t) );
+}
=20
+POST(sys_getgroups16)
+{
+ vg_assert(SUCCESS);
+ if (ARG1 > 0 && RES > 0)
+ POST_MEM_WRITE( ARG2, RES * sizeof(vki_old_gid_t) );
+}
+
PRE(sys_getgroups)
{
PRINT("sys_getgroups ( %d, %p )", ARG1, ARG2);
@@ -2842,11 +2854,11 @@
PRE_REG_READ0(long, "geteuid");
}
=20
-//zz PRE(sys_getegid16, 0)
-//zz {
-//zz PRINT("sys_getegid16 ( )");
-//zz PRE_REG_READ0(long, "getegid16");
-//zz }
+PRE(sys_getegid16)
+{
+ PRINT("sys_getegid16 ( )");
+ PRE_REG_READ0(long, "getegid16");
+}
=20
PRE(sys_getegid)
{
@@ -2872,11 +2884,11 @@
PRE_REG_READ0(long, "getpid");
}
=20
-//zz PRE(sys_getpgid, 0)
-//zz {
-//zz PRINT("sys_getpgid ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "getpgid", vki_pid_t, pid);
-//zz }
+PRE(sys_getpgid)
+{
+ PRINT("sys_getpgid ( %d )", ARG1);
+ PRE_REG_READ1(long, "getpgid", vki_pid_t, pid);
+}
=20
PRE(sys_getpgrp)
{
@@ -2910,19 +2922,19 @@
}
}
=20
-//zz PRE(sys_old_getrlimit, 0)
-//zz {
-//zz PRINT("sys_old_getrlimit ( %d, %p )", ARG1,ARG2);
-//zz PRE_REG_READ2(long, "old_getrlimit",
-//zz unsigned int, resource, struct rlimit *, rlim);
-//zz PRE_MEM_WRITE( "old_getrlimit(rlim)", ARG2, sizeof(struct vki_rl=
imit) );
-//zz }
-//zz=20
-//zz POST(sys_old_getrlimit)
-//zz {
-//zz common_post_getrlimit(tid, ARG1, ARG2);
-//zz }
+PRE(sys_old_getrlimit)
+{
+ PRINT("sys_old_getrlimit ( %d, %p )", ARG1,ARG2);
+ PRE_REG_READ2(long, "old_getrlimit",
+ unsigned int, resource, struct rlimit *, rlim);
+ PRE_MEM_WRITE( "old_getrlimit(rlim)", ARG2, sizeof(struct vki_rlimit)=
);
+}
=20
+POST(sys_old_getrlimit)
+{
+ common_post_getrlimit(tid, ARG1, ARG2);
+}
+
PRE(sys_getrlimit)
{
PRINT("sys_getrlimit ( %d, %p )", ARG1,ARG2);
@@ -2936,20 +2948,21 @@
common_post_getrlimit(tid, ARG1, ARG2);
}
=20
-//zz PRE(sys_getrusage, 0)
-//zz {
-//zz /* int getrusage (int who, struct rusage *usage); */
-//zz PRINT("sys_getrusage ( %d, %p )", ARG1,ARG2);
-//zz PRE_REG_READ2(long, "getrusage", int, who, struct rusage *, usag=
e);
-//zz PRE_MEM_WRITE( "getrusage(usage)", ARG2, sizeof(struct vki_rusag=
e) );
-//zz }
-//zz=20
-//zz POST(sys_getrusage)
-//zz {
-//zz if (RES =3D=3D 0)
-//zz POST_MEM_WRITE( ARG2, sizeof(struct vki_rusage) );
-//zz }
+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) );
+}
=20
+POST(sys_getrusage)
+{
+ vg_assert(SUCCESS);
+ if (RES =3D=3D 0)
+ POST_MEM_WRITE( ARG2, sizeof(struct vki_rusage) );
+}
+
PRE(sys_gettimeofday)
{
PRINT("sys_gettimeofday ( %p, %p )", ARG1,ARG2);
@@ -2970,17 +2983,17 @@
}
}
=20
-//zz PRE(sys_settimeofday, 0)
-//zz {
-//zz PRINT("sys_settimeofday ( %p, %p )", ARG1,ARG2);
-//zz PRE_REG_READ2(long, "settimeofday",
-//zz struct timeval *, tv, struct timezone *, tz);
-//zz PRE_MEM_READ( "settimeofday(tv)", ARG1, sizeof(struct vki_timeva=
l) );
-//zz if (ARG2 !=3D 0) {
-//zz PRE_MEM_READ( "settimeofday(tz)", ARG2, sizeof(struct vki_tim=
ezone) );
-//zz /* maybe should warn if tz->tz_dsttime is non-zero? */
-//zz }
-//zz }
+PRE(sys_settimeofday)
+{
+ PRINT("sys_settimeofday ( %p, %p )", ARG1,ARG2);
+ PRE_REG_READ2(long, "settimeofday",
+ struct timeval *, tv, struct timezone *, tz);
+ PRE_MEM_READ( "settimeofday(tv)", ARG1, sizeof(struct vki_timeval) );
+ if (ARG2 !=3D 0) {
+ PRE_MEM_READ( "settimeofday(tz)", ARG2, sizeof(struct vki_timezone=
) );
+ /* maybe should warn if tz->tz_dsttime is non-zero? */
+ }
+}
=20
PRE(sys_getuid16)
{
@@ -4359,21 +4372,22 @@
unsigned int, fd, vki_off_t, offset, unsigned int, when=
ce);
}
=20
-//zz PRE(sys_newlstat, 0)
-//zz {
-//zz PRINT("sys_newlstat ( %p(%s), %p )", ARG1,ARG1,ARG2);
-//zz PRE_REG_READ2(long, "lstat", char *, file_name, struct stat *, b=
uf);
-//zz PRE_MEM_RASCIIZ( "lstat(file_name)", ARG1 );
-//zz PRE_MEM_WRITE( "lstat(buf)", ARG2, sizeof(struct vki_stat) );
-//zz }
-//zz=20
-//zz POST(sys_newlstat)
-//zz {
-//zz if (RES =3D=3D 0) {
-//zz POST_MEM_WRITE( ARG2, sizeof(struct vki_stat) );
-//zz }
-//zz }
+PRE(sys_newlstat)
+{
+ PRINT("sys_newlstat ( %p(%s), %p )", ARG1,ARG1,ARG2);
+ PRE_REG_READ2(long, "lstat", char *, file_name, struct stat *, buf);
+ PRE_MEM_RASCIIZ( "lstat(file_name)", ARG1 );
+ PRE_MEM_WRITE( "lstat(buf)", ARG2, sizeof(struct vki_stat) );
+}
=20
+POST(sys_newlstat)
+{
+ vg_assert(SUCCESS);
+ if (RES =3D=3D 0) {
+ POST_MEM_WRITE( ARG2, sizeof(struct vki_stat) );
+ }
+}
+
PRE(sys_mkdir)
{
*flags |=3D SfMayBlock;
@@ -4805,21 +4819,21 @@
//zz PRINT("sys_setgid ( %d )", ARG1);
//zz PRE_REG_READ1(long, "setgid", vki_gid_t, gid);
//zz }
-//zz=20
-//zz PRE(sys_setsid, 0)
-//zz {
-//zz PRINT("sys_setsid ( )");
-//zz PRE_REG_READ0(long, "setsid");
-//zz }
-//zz=20
-//zz PRE(sys_setgroups16, 0)
-//zz {
-//zz PRINT("sys_setgroups16 ( %llu, %p )", (ULong)ARG1, ARG2);
-//zz PRE_REG_READ2(long, "setgroups16", int, size, vki_old_gid_t *, l=
ist);
-//zz if (ARG1 > 0)
-//zz PRE_MEM_READ( "setgroups16(list)", ARG2, ARG1 * sizeof(vki_ol=
d_gid_t) );
-//zz }
-//zz=20
+
+PRE(sys_setsid)
+{
+ PRINT("sys_setsid ( )");
+ PRE_REG_READ0(long, "setsid");
+}
+
+PRE(sys_setgroups16)
+{
+ PRINT("sys_setgroups16 ( %llu, %p )", (ULong)ARG1, ARG2);
+ PRE_REG_READ2(long, "setgroups16", int, size, vki_old_gid_t *, list);
+ if (ARG1 > 0)
+ PRE_MEM_READ( "setgroups16(list)", ARG2, ARG1 * sizeof(vki_old_gid=
_t) );
+}
+
//zz PRE(sys_setgroups, 0)
//zz {
//zz PRINT("setgroups ( %llu, %p )", (ULong)ARG1, ARG2);
@@ -4827,25 +4841,25 @@
//zz if (ARG1 > 0)
//zz PRE_MEM_READ( "setgroups(list)", ARG2, ARG1 * sizeof(vki_gid_=
t) );
//zz }
-//zz=20
-//zz PRE(sys_setpgid, 0)
-//zz {
-//zz PRINT("setpgid ( %d, %d )", ARG1, ARG2);
-//zz PRE_REG_READ2(long, "setpgid", vki_pid_t, pid, vki_pid_t, pgid);
-//zz }
-//zz=20
-//zz PRE(sys_setregid, 0)
-//zz {
-//zz PRINT("sys_setregid ( %d, %d )", ARG1, ARG2);
-//zz PRE_REG_READ2(long, "setregid", vki_gid_t, rgid, vki_gid_t, egid=
);
-//zz }
-//zz=20
-//zz PRE(sys_setreuid16, 0)
-//zz {
-//zz PRINT("setreuid16 ( 0x%x, 0x%x )", ARG1, ARG2);
-//zz PRE_REG_READ2(long, "setreuid16", vki_old_uid_t, ruid, vki_old_u=
id_t, euid);
-//zz }
-//zz=20
+
+PRE(sys_setpgid)
+{
+ PRINT("setpgid ( %d, %d )", ARG1, ARG2);
+ PRE_REG_READ2(long, "setpgid", vki_pid_t, pid, vki_pid_t, pgid);
+}
+
+PRE(sys_setregid)
+{
+ PRINT("sys_setregid ( %d, %d )", ARG1, ARG2);
+ PRE_REG_READ2(long, "setregid", vki_gid_t, rgid, vki_gid_t, egid);
+}
+
+PRE(sys_setreuid16)
+{
+ PRINT("setreuid16 ( 0x%x, 0x%x )", ARG1, ARG2);
+ PRE_REG_READ2(long, "setreuid16", vki_old_uid_t, ruid, vki_old_uid_t,=
euid);
+}
+
//zz PRE(sys_setreuid, 0)
//zz {
//zz PRINT("sys_setreuid ( 0x%x, 0x%x )", ARG1, ARG2);
@@ -4904,32 +4918,32 @@
//zz PRE_REG_READ1(long, "setuid", vki_uid_t, uid);
//zz }
=20
-//zz PRE(sys_newstat, 0)
-//zz {
-//zz PRINT("sys_newstat ( %p(%s), %p )", ARG1,ARG1,ARG2);
-//zz PRE_REG_READ2(long, "stat", char *, file_name, struct stat *, bu=
f);
-//zz PRE_MEM_RASCIIZ( "stat(file_name)", ARG1 );
-//zz PRE_MEM_WRITE( "stat(buf)", ARG2, sizeof(struct vki_stat) );
-//zz }
-//zz=20
-//zz POST(sys_newstat)
-//zz {
-//zz POST_MEM_WRITE( ARG2, sizeof(struct vki_stat) );
-//zz }
-//zz=20
-//zz PRE(sys_statfs, 0)
-//zz {
-//zz PRINT("sys_statfs ( %p, %p )",ARG1,ARG2);
-//zz PRE_REG_READ2(long, "statfs", const char *, path, struct statfs =
*, buf);
-//zz PRE_MEM_RASCIIZ( "statfs(path)", ARG1 );
-//zz PRE_MEM_WRITE( "statfs(buf)", ARG2, sizeof(struct vki_statfs) );
-//zz }
-//zz=20
-//zz POST(sys_statfs)
-//zz {
-//zz POST_MEM_WRITE( ARG2, sizeof(struct vki_statfs) );
-//zz }
-//zz=20
+PRE(sys_newstat)
+{
+ PRINT("sys_newstat ( %p(%s), %p )", ARG1,ARG1,ARG2);
+ PRE_REG_READ2(long, "stat", char *, file_name, struct stat *, buf);
+ PRE_MEM_RASCIIZ( "stat(file_name)", ARG1 );
+ PRE_MEM_WRITE( "stat(buf)", ARG2, sizeof(struct vki_stat) );
+}
+
+POST(sys_newstat)
+{
+ POST_MEM_WRITE( ARG2, sizeof(struct vki_stat) );
+}
+
+PRE(sys_statfs)
+{
+ PRINT("sys_statfs ( %p, %p )",ARG1,ARG2);
+ PRE_REG_READ2(long, "statfs", const char *, path, struct statfs *, bu=
f);
+ PRE_MEM_RASCIIZ( "statfs(path)", ARG1 );
+ PRE_MEM_WRITE( "statfs(buf)", ARG2, sizeof(struct vki_statfs) );
+}
+
+POST(sys_statfs)
+{
+ POST_MEM_WRITE( ARG2, sizeof(struct vki_statfs) );
+}
+
//zz PRE(sys_statfs64, 0)
//zz {
//zz PRINT("sys_statfs64 ( %p, %llu, %p )",ARG1,(ULong)ARG2,ARG3);
@@ -5114,14 +5128,14 @@
//zz {
//zz POST_MEM_WRITE(ARG3, ARG2);
//zz }
-//zz=20
-//zz PRE(sys_acct, 0)
-//zz {
-//zz PRINT("sys_acct ( %p )", ARG1);
-//zz PRE_REG_READ1(long, "acct", const char *, filename);
-//zz PRE_MEM_RASCIIZ( "acct(filename)", ARG1 );
-//zz }
=20
+PRE(sys_acct)
+{
+ PRINT("sys_acct ( %p )", ARG1);
+ PRE_REG_READ1(long, "acct", const char *, filename);
+ PRE_MEM_RASCIIZ( "acct(filename)", ARG1 );
+}
+
PRE(sys_pause)
{
*flags |=3D SfMayBlock;
@@ -5346,18 +5360,18 @@
POST_MEM_WRITE( ARG3, sizeof(vki_sigset_t));
}
=20
-//zz PRE(sys_sigpending, 0)
-//zz {
-//zz PRINT( "sys_sigpending ( %p )", ARG1 );
-//zz PRE_REG_READ1(long, "sigpending", vki_old_sigset_t *, set);
-//zz PRE_MEM_WRITE( "sigpending(set)", ARG1, sizeof(vki_old_sigset_t)=
);
-//zz }
-//zz=20
-//zz POST(sys_sigpending)
-//zz {
-//zz POST_MEM_WRITE( ARG1, sizeof(vki_old_sigset_t) ) ;
-//zz }
-//zz=20
+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) ) ;
+}
+
//zz PRE(sys_rt_sigpending, 0)
//zz {
//zz PRINT( "sys_rt_sigpending ( %p )", ARG1 );
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-linux.c 2005-06-08 10:46:56 UTC (=
rev 3853)
+++ trunk/coregrind/m_syscalls/syscalls-linux.c 2005-06-08 23:38:32 UTC (=
rev 3854)
@@ -162,25 +162,25 @@
//zz {
//zz POST_MEM_WRITE( ARG1, sizeof(struct vki_timex) );
//zz }
-//zz=20
-//zz PRE(sys_setfsuid16, 0)
-//zz {
-//zz PRINT("sys_setfsuid16 ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "setfsuid16", vki_old_uid_t, uid);
-//zz }
-//zz=20
+
+PRE(sys_setfsuid16)
+{
+ PRINT("sys_setfsuid16 ( %d )", ARG1);
+ PRE_REG_READ1(long, "setfsuid16", vki_old_uid_t, uid);
+}
+
//zz PRE(sys_setfsuid, 0)
//zz {
//zz PRINT("sys_setfsuid ( %d )", ARG1);
//zz PRE_REG_READ1(long, "setfsuid", vki_uid_t, uid);
//zz }
-//zz=20
-//zz PRE(sys_setfsgid16, 0)
-//zz {
-//zz PRINT("sys_setfsgid16 ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "setfsgid16", vki_old_gid_t, gid);
-//zz }
-//zz=20
+
+PRE(sys_setfsgid16)
+{
+ PRINT("sys_setfsgid16 ( %d )", ARG1);
+ PRE_REG_READ1(long, "setfsgid16", vki_old_gid_t, gid);
+}
+
//zz PRE(sys_setfsgid, 0)
//zz {
//zz PRINT("sys_setfsgid ( %d )", ARG1);
@@ -295,63 +295,64 @@
}
}
=20
-//zz PRE(sys_ioperm, 0)
-//zz {
-//zz PRINT("sys_ioperm ( %d, %d, %d )", ARG1, ARG2, ARG3 );
-//zz PRE_REG_READ3(long, "ioperm",
-//zz unsigned long, from, unsigned long, num, int, turn=
_on);
-//zz }
-//zz=20
-//zz PRE(sys_syslog, MayBlock)
-//zz {
-//zz PRINT("sys_syslog (%d, %p, %d)", ARG1,ARG2,ARG3);
-//zz PRE_REG_READ3(long, "syslog", int, type, char *, bufp, int, len)=
;
-//zz switch (ARG1) {
-//zz // The kernel uses magic numbers here, rather than named constan=
ts,
-//zz // therefore so do we.
-//zz case 2: case 3: case 4:
-//zz PRE_MEM_WRITE( "syslog(bufp)", ARG2, ARG3);
-//zz break;
-//zz default:=20
-//zz break;
-//zz }
-//zz }
-//zz=20
-//zz POST(sys_syslog)
-//zz {
-//zz switch (ARG1) {
-//zz case 2: case 3: case 4:
-//zz POST_MEM_WRITE( ARG2, ARG3 );
-//zz break;
-//zz default:
-//zz break;
-//zz }
-//zz }
-//zz=20
-//zz PRE(sys_vhangup, 0)
-//zz {
-//zz PRINT("sys_vhangup ( )");
-//zz PRE_REG_READ0(long, "vhangup");
-//zz }
-//zz=20
-//zz PRE(sys_sysinfo, 0)
-//zz {
-//zz PRINT("sys_sysinfo ( %p )",ARG1);
-//zz PRE_REG_READ1(long, "sysinfo", struct sysinfo *, info);
-//zz PRE_MEM_WRITE( "sysinfo(info)", ARG1, sizeof(struct vki_sysinfo)=
);
-//zz }
-//zz=20
-//zz POST(sys_sysinfo)
-//zz {
-//zz POST_MEM_WRITE( ARG1, sizeof(struct vki_sysinfo) );
-//zz }
-//zz=20
-//zz PRE(sys_personality, 0)
-//zz {
-//zz PRINT("sys_personality ( %llu )", (ULong)ARG1);
-//zz PRE_REG_READ1(long, "personality", vki_u_long, persona);
-//zz }
+PRE(sys_ioperm)
+{
+ PRINT("sys_ioperm ( %d, %d, %d )", ARG1, ARG2, ARG3 );
+ PRE_REG_READ3(long, "ioperm",
+ unsigned long, from, unsigned long, num, int, turn_on);
+}
=20
+PRE(sys_syslog)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_syslog (%d, %p, %d)", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "syslog", int, type, char *, bufp, int, len);
+ switch (ARG1) {
+ // The kernel uses magic numbers here, rather than named constants,
+ // therefore so do we.
+ case 2: case 3: case 4:
+ PRE_MEM_WRITE( "syslog(bufp)", ARG2, ARG3);
+ break;
+ default:=20
+ break;
+ }
+}
+
+POST(sys_syslog)
+{
+ switch (ARG1) {
+ case 2: case 3: case 4:
+ POST_MEM_WRITE( ARG2, ARG3 );
+ break;
+ default:
+ break;
+ }
+}
+
+PRE(sys_vhangup)
+{
+ PRINT("sys_vhangup ( )");
+ PRE_REG_READ0(long, "vhangup");
+}
+
+PRE(sys_sysinfo)
+{
+ PRINT("sys_sysinfo ( %p )",ARG1);
+ PRE_REG_READ1(long, "sysinfo", struct sysinfo *, info);
+ PRE_MEM_WRITE( "sysinfo(info)", ARG1, sizeof(struct vki_sysinfo) );
+}
+
+POST(sys_sysinfo)
+{
+ POST_MEM_WRITE( ARG1, sizeof(struct vki_sysinfo) );
+}
+
+PRE(sys_personality)
+{
+ PRINT("sys_personality ( %llu )", (ULong)ARG1);
+ PRE_REG_READ1(long, "personality", vki_u_long, persona);
+}
+
PRE(sys_sysctl)
{
struct __vki_sysctl_args *argz;
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-x86-linux.c 2005-06-08 10:46:56 U=
TC (rev 3853)
+++ trunk/coregrind/m_syscalls/syscalls-x86-linux.c 2005-06-08 23:38:32 U=
TC (rev 3854)
@@ -951,40 +951,42 @@
DECL_TEMPLATE(x86_linux, sys_modify_ldt);
DECL_TEMPLATE(x86_linux, sys_set_thread_area);
DECL_TEMPLATE(x86_linux, sys_ptrace);
+DECL_TEMPLATE(x86_linux, sys_sigaction);
+DECL_TEMPLATE(x86_linux, old_select);
=20
-//zz PRE(old_select, MayBlock)
-//zz {
-//zz /* struct sel_arg_struct {
-//zz unsigned long n;
-//zz fd_set *inp, *outp, *exp;
-//zz struct timeval *tvp;
-//zz };
-//zz */
-//zz PRE_REG_READ1(long, "old_select", struct sel_arg_struct *, args)=
;
-//zz PRE_MEM_READ( "old_select(args)", ARG1, 5*sizeof(UWord) );
-//zz=20
-//zz {
-//zz UInt* arg_struct =3D (UInt*)ARG1;
-//zz UInt a1, a2, a3, a4, a5;
-//zz=20
-//zz a1 =3D arg_struct[0];
-//zz a2 =3D arg_struct[1];
-//zz a3 =3D arg_struct[2];
-//zz a4 =3D arg_struct[3];
-//zz a5 =3D arg_struct[4];
-//zz=20
-//zz PRINT("old_select ( %d, %p, %p, %p, %p )", a1,a2,a3,a4,a5);
-//zz if (a2 !=3D (Addr)NULL)
-//zz PRE_MEM_READ( "old_select(readfds)", a2, a1/8 /* __FD_SE=
TSIZE/8 */ );
-//zz if (a3 !=3D (Addr)NULL)
-//zz PRE_MEM_READ( "old_select(writefds)", a3, a1/8 /* __FD_SE=
TSIZE/8 */ );
-//zz if (a4 !=3D (Addr)NULL)
-//zz PRE_MEM_READ( "old_select(exceptfds)", a4, a1/8 /* __FD_SE=
TSIZE/8 */ );
-//zz if (a5 !=3D (Addr)NULL)
-//zz PRE_MEM_READ( "old_select(timeout)", a5, sizeof(struct vki=
_timeval) );
-//zz }
-//zz }
+PRE(old_select)
+{
+ /* struct sel_arg_struct {
+ unsigned long n;
+ fd_set *inp, *outp, *exp;
+ struct timeval *tvp;
+ };
+ */
+ PRE_REG_READ1(long, "old_select", struct sel_arg_struct *, args);
+ PRE_MEM_READ( "old_select(args)", ARG1, 5*sizeof(UWord) );
+ *flags |=3D SfMayBlock;
+ {
+ UInt* arg_struct =3D (UInt*)ARG1;
+ UInt a1, a2, a3, a4, a5;
=20
+ a1 =3D arg_struct[0];
+ a2 =3D arg_struct[1];
+ a3 =3D arg_struct[2];
+ a4 =3D arg_struct[3];
+ a5 =3D arg_struct[4];
+
+ PRINT("old_select ( %d, %p, %p, %p, %p )", a1,a2,a3,a4,a5);
+ if (a2 !=3D (Addr)NULL)
+ PRE_MEM_READ( "old_select(readfds)", a2, a1/8 /* __FD_SETSIZE=
/8 */ );
+ if (a3 !=3D (Addr)NULL)
+ PRE_MEM_READ( "old_select(writefds)", a3, a1/8 /* __FD_SETSIZE=
/8 */ );
+ if (a4 !=3D (Addr)NULL)
+ PRE_MEM_READ( "old_select(exceptfds)", a4, a1/8 /* __FD_SETSIZE=
/8 */ );
+ if (a5 !=3D (Addr)NULL)
+ PRE_MEM_READ( "old_select(timeout)", a5, sizeof(struct vki_time=
val) );
+ }
+}
+
PRE(sys_clone)
{
UInt cloneflags;
@@ -1820,82 +1822,70 @@
# undef ARG2_5
}
=20
-//zz // jrs 20050207: this is from the svn branch
-//zz //PRE(sys_sigaction, Special)
-//zz //{
-//zz // PRINT("sys_sigaction ( %d, %p, %p )", ARG1,ARG2,ARG3);
-//zz // PRE_REG_READ3(int, "sigaction",
-//zz // int, signum, const struct old_sigaction *, act,
-//zz // struct old_sigaction *, oldact)
-//zz // if (ARG2 !=3D 0)
-//zz // PRE_MEM_READ( "sigaction(act)", ARG2, sizeof(struct vki_old=
_sigaction));
-//zz // if (ARG3 !=3D 0)
-//zz // PRE_MEM_WRITE( "sigaction(oldact)", ARG3, sizeof(struct vki=
_old_sigaction));
-//zz //
-//zz // VG_(do_sys_sigaction)(tid);
-//zz //}
-//zz=20
-//zz /* Convert from non-RT to RT sigset_t's */
-//zz static void convert_sigset_to_rt(const vki_old_sigset_t *oldset, vk=
i_sigset_t *set)
-//zz {
-//zz VG_(sigemptyset)(set);
-//zz set->sig[0] =3D *oldset;
-//zz }
-//zz PRE(sys_sigaction, Special)
-//zz {
-//zz struct vki_sigaction new, old;
-//zz struct vki_sigaction *newp, *oldp;
-//zz=20
-//zz PRINT("sys_sigaction ( %d, %p, %p )", ARG1,ARG2,ARG3);
-//zz PRE_REG_READ3(int, "sigaction",
-//zz int, signum, const struct old_sigaction *, act,
-//zz struct old_sigaction *, oldact);
-//zz=20
-//zz newp =3D oldp =3D NULL;
-//zz=20
-//zz if (ARG2 !=3D 0)
-//zz PRE_MEM_READ( "sigaction(act)", ARG2, sizeof(struct vki_old_s=
igaction));
-//zz=20
-//zz if (ARG3 !=3D 0) {
-//zz PRE_MEM_WRITE( "sigaction(oldact)", ARG3, sizeof(struct vki_o=
ld_sigaction));
-//zz oldp =3D &old;
-//zz }
-//zz=20
-//zz //jrs 20050207: what?! how can this make any sense?
-//zz //if (VG_(is_kerror)(SYSRES))
-//zz // return;
-//zz=20
-//zz if (ARG2 !=3D 0) {
-//zz struct vki_old_sigaction *oldnew =3D (struct vki_old_sigactio=
n *)ARG2;
-//zz=20
-//zz new.ksa_handler =3D oldnew->ksa_handler;
-//zz new.sa_flags =3D oldnew->sa_flags;
-//zz new.sa_restorer =3D oldnew->sa_restorer;
-//zz convert_sigset_to_rt(&oldnew->sa_mask, &new.sa_mask);
-//zz newp =3D &new;
-//zz }
-//zz=20
-//zz SET_STATUS_( VG_(do_sys_sigaction)(ARG1, newp, oldp) );
-//zz=20
-//zz if (ARG3 !=3D 0 && RES =3D=3D 0) {
-//zz struct vki_old_sigaction *oldold =3D (struct vki_old_sigactio=
n *)ARG3;
-//zz=20
-//zz oldold->ksa_handler =3D oldp->ksa_handler;
-//zz oldold->sa_flags =3D oldp->sa_flags;
-//zz oldold->sa_restorer =3D oldp->sa_restorer;
-//zz oldold->sa_mask =3D oldp->sa_mask.sig[0];
-//zz }
-//zz }
-//zz=20
-//zz POST(sys_sigaction)
-//zz {
-//zz if (RES =3D=3D 0 && ARG3 !=3D 0)
-//zz POST_MEM_WRITE( ARG3, sizeof(struct vki_old_sigaction));
-//zz }
-//zz=20
-//zz #undef PRE
-//zz #undef POST
+/* Convert from non-RT to RT sigset_t's */
+static=20
+void convert_sigset_to_rt(const vki_old_sigset_t *oldset, vki_sigset_t *=
set)
+{
+ VG_(sigemptyset)(set);
+ set->sig[0] =3D *oldset;
+}
+PRE(sys_sigaction)
+{
+ struct vki_sigaction new, old;
+ struct vki_sigaction *newp, *oldp;
=20
+ PRINT("sys_sigaction ( %d, %p, %p )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(int, "sigaction",
+ int, signum, const struct old_sigaction *, act,
+ struct old_sigaction *, oldact);
+
+ newp =3D oldp =3D NULL;
+
+ if (ARG2 !=3D 0)
+ PRE_MEM_READ( "sigaction(act)", ARG2, sizeof(struct vki_old_sigact=
ion));
+
+ if (ARG3 !=3D 0) {
+ PRE_MEM_WRITE( "sigaction(oldact)", ARG3, sizeof(struct vki_old_si=
gaction));
+ oldp =3D &old;
+ }
+
+ //jrs 20050207: what?! how can this make any sense?
+ //if (VG_(is_kerror)(SYSRES))
+ // return;
+
+ if (ARG2 !=3D 0) {
+ struct vki_old_sigaction *oldnew =3D (struct vki_old_sigaction *)A=
RG2;
+
+ new.ksa_handler =3D oldnew->ksa_handler;
+ new.sa_flags =3D oldnew->sa_flags;
+ new.sa_restorer =3D oldnew->sa_restorer;
+ convert_sigset_to_rt(&oldnew->sa_mask, &new.sa_mask);
+ newp =3D &new;
+ }
+
+ SET_STATUS_from_SysRes( VG_(do_sys_sigaction)(ARG1, newp, oldp) );
+
+ if (ARG3 !=3D 0 && SUCCESS && RES =3D=3D 0) {
+ struct vki_old_sigaction *oldold =3D (struct vki_old_sigaction *)A=
RG3;
+
+ oldold->ksa_handler =3D oldp->ksa_handler;
+ oldold->sa_flags =3D oldp->sa_flags;
+ oldold->sa_restorer =3D oldp->sa_restorer;
+ oldold->sa_mask =3D oldp->sa_mask.sig[0];
+ }
+}
+
+POST(sys_sigaction)
+{
+ vg_assert(SUCCESS);
+ if (RES =3D=3D 0 && ARG3 !=3D 0)
+ POST_MEM_WRITE( ARG3, sizeof(struct vki_old_sigaction));
+}
+
+#undef PRE
+#undef POST
+
+
/* ---------------------------------------------------------------------
The x86/Linux syscall table
------------------------------------------------------------------ */
@@ -1974,46 +1964,46 @@
GENX_(__NR_getgid, sys_getgid16), // 47
//zz // (__NR_signal, sys_signal), // 48 */* (AN=
SI C)
GENX_(__NR_geteuid, sys_geteuid16), // 49
-//zz=20
-//zz GENX_(__NR_getegid, sys_getegid16), // 50
-//zz GENX_(__NR_acct, sys_acct), // 51
-//zz LINX_(__NR_umount2, sys_umount), // 52
+
+ GENX_(__NR_getegid, sys_getegid16), // 50
+ GENX_(__NR_acct, sys_acct), // 51
+ LINX_(__NR_umount2, sys_umount), // 52
GENX_(__NR_lock, sys_ni_syscall), // 53
GENXY(__NR_ioctl, sys_ioctl), // 54
-//zz=20
-//zz GENXY(__NR_fcntl, sys_fcntl), // 55
+
+ GENXY(__NR_fcntl, sys_fcntl), // 55
GENX_(__NR_mpx, sys_ni_syscall), // 56
-//zz GENX_(__NR_setpgid, sys_setpgid), // 57
+ GENX_(__NR_setpgid, sys_setpgid), // 57
GENX_(__NR_ulimit, sys_ni_syscall), // 58
//zz // (__NR_oldolduname, sys_olduname), // 59 Linux -=
- obsolete
//zz=20
GENX_(__NR_umask, sys_umask), // 60
-//zz GENX_(__NR_chroot, sys_chroot), // 61
+ GENX_(__NR_chroot, sys_chroot), // 61
//zz // (__NR_ustat, sys_ustat) // 62 SVr4 --=
deprecated
GENXY(__NR_dup2, sys_dup2), // 63
GENX_(__NR_getppid, sys_getppid), // 64
=20
GENX_(__NR_getpgrp, sys_getpgrp), // 65
-//zz GENX_(__NR_setsid, sys_setsid), // 66
-//zz PLAXY(__NR_sigaction, sys_sigaction), // 67
+ GENX_(__NR_setsid, sys_setsid), // 66
+ PLAXY(__NR_sigaction, sys_sigaction), // 67
//zz // (__NR_sgetmask, sys_sgetmask), // 68 */* (AN=
SI C)
//zz // (__NR_ssetmask, sys_ssetmask), // 69 */* (AN=
SI C)
//zz=20
-//zz GENX_(__NR_setreuid, sys_setreuid16), // 70
-//zz GENX_(__NR_setregid, sys_setregid16), // 71
+ GENX_(__NR_setreuid, sys_setreuid16), // 70
+ GENX_(__NR_setregid, sys_setregid16), // 71
//zz GENX_(__NR_sigsuspend, sys_sigsuspend), // 72
-//zz GENXY(__NR_sigpending, sys_sigpending), // 73
+ GENXY(__NR_sigpending, sys_sigpending), // 73
//zz // (__NR_sethostname, sys_sethostname), // 74 */*
//zz=20
GENX_(__NR_setrlimit, sys_setrlimit), // 75
-//zz GENXY(__NR_getrlimit, sys_old_getrlimit), // 76
-//zz GENXY(__NR_getrusage, sys_getrusage), // 77
+ GENXY(__NR_getrlimit, sys_old_getrlimit), // 76
+ GENXY(__NR_getrusage, sys_getrusage), // 77
GENXY(__NR_gettimeofday, sys_gettimeofday), // 78
-//zz GENX_(__NR_settimeofday, sys_settimeofday), // 79
-//zz=20
-//zz GENXY(__NR_getgroups, sys_getgroups16), // 80
-//zz GENX_(__NR_setgroups, sys_setgroups16), // 81
-//zz PLAX_(__NR_select, old_select), // 82
+ GENX_(__NR_settimeofday, sys_settimeofday), // 79
+
+ GENXY(__NR_getgroups, sys_getgroups16), // 80
+ GENX_(__NR_setgroups, sys_setgroups16), // 81
+ PLAX_(__NR_select, old_select), // 82
GENX_(__NR_symlink, sys_symlink), // 83
//zz // (__NR_oldlstat, sys_lstat), // 84 -- obso=
lete
//zz=20
@@ -2025,36 +2015,36 @@
//zz=20
PLAX_(__NR_mmap, old_mmap), // 90
GENXY(__NR_munmap, sys_munmap), // 91
-//zz GENX_(__NR_truncate, sys_truncate), // 92
+ GENX_(__NR_truncate, sys_truncate), // 92
GENX_(__NR_ftruncate, sys_ftruncate), // 93
-//zz GENX_(__NR_fchmod, sys_fchmod), // 94
-//zz=20
-//zz GENX_(__NR_fchown, sys_fchown16), // 95
-//zz GENX_(__NR_getpriority, sys_getpriority), // 96
-//zz GENX_(__NR_setpriority, sys_setpriority), // 97
+ GENX_(__NR_fchmod, sys_fchmod), // 94
+
+ GENX_(__NR_fchown, sys_fchown16), // 95
+ GENX_(__NR_getpriority, sys_getpriority), // 96
+ GENX_(__NR_setpriority, sys_setpriority), // 97
GENX_(__NR_profil, sys_ni_syscall), // 98
-//zz GENXY(__NR_statfs, sys_statfs), // 99
-//zz=20
-//zz GENXY(__NR_fstatfs, sys_fstatfs), // 100
-//zz LINX_(__NR_ioperm, sys_ioperm), // 101
+ GENXY(__NR_statfs, sys_statfs), // 99
+
+ GENXY(__NR_fstatfs, sys_fstatfs), // 100
+ LINX_(__NR_ioperm, sys_ioperm), // 101
PLAXY(__NR_socketcall, sys_socketcall), // 102 x86/Linux-o=
nly
-//zz LINXY(__NR_syslog, sys_syslog), // 103
-//zz GENXY(__NR_setitimer, sys_setitimer), // 104
-//zz=20
-//zz GENXY(__NR_getitimer, sys_getitimer), // 105
-//zz GENXY(__NR_stat, sys_newstat), // 106
-//zz GENXY(__NR_lstat, sys_newlstat), // 107
-//zz GENXY(__NR_fstat, sys_newfstat), // 108
+ LINXY(__NR_syslog, sys_syslog), // 103
+ GENXY(__NR_setitimer, sys_setitimer), // 104
+
+ GENXY(__NR_getitimer, sys_getitimer), // 105
+ GENXY(__NR_stat, sys_newstat), // 106
+ GENXY(__NR_lstat, sys_newlstat), // 107
+ GENXY(__NR_fstat, sys_newfstat), // 108
//zz // (__NR_olduname, sys_uname), // 109 -- obs=
olete
//zz=20
-//zz GENX_(__NR_iopl, sys_iopl), // 110
-//zz LINX_(__NR_vhangup, sys_vhangup), // 111
+ GENX_(__NR_iopl, sys_iopl), // 110
+ LINX_(__NR_vhangup, sys_vhangup), // 111
GENX_(__NR_idle, sys_ni_syscall), // 112
//zz // (__NR_vm86old, sys_vm86old), // 113 x86/Li=
nux-only
GENXY(__NR_wait4, sys_wait4), // 114
//zz=20
//zz // (__NR_swapoff, sys_swapoff), // 115 */Linu=
x=20
-//zz LINXY(__NR_sysinfo, sys_sysinfo), // 116
+ LINXY(__NR_sysinfo, sys_sysinfo), // 116
PLAXY(__NR_ipc, sys_ipc), // 117
GENX_(__NR_fsync, sys_fsync), // 118
PLAX_(__NR_sigreturn, sys_sigreturn), // 119 ?/Linux
@@ -2069,38 +2059,38 @@
GENXY(__NR_sigprocmask, sys_sigprocmask), // 126
//zz // Nb: create_module() was removed 2.4-->2.6
GENX_(__NR_create_module, sys_ni_syscall), // 127
-//zz GENX_(__NR_init_module, sys_init_module), // 128
+ GENX_(__NR_init_module, sys_init_module), // 128
//zz // (__NR_delete_module, sys_delete_module), // 129 (*/Lin=
ux)?
//zz=20
//zz // Nb: get_kernel_syms() was removed 2.4-->2.6
GENX_(__NR_get_kernel_syms, sys_ni_syscall), // 130
-//zz GENX_(__NR_quotactl, sys_quotactl), // 131
-//zz GENX_(__NR_getpgid, sys_getpgid), // 132
-//zz GENX_(__NR_fchdir, sys_fchdir), // 133
+ GENX_(__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
//zz=20
//zz // (__NR_sysfs, sys_sysfs), // 135 SVr4
-//zz LINX_(__NR_personality, sys_personality), // 136
+ LINX_(__NR_personality, sys_personality), // 136
GENX_(__NR_afs_syscall, sys_ni_syscall), // 137
-//zz LINX_(__NR_setfsuid, sys_setfsuid16), // 138
-//zz LINX_(__NR_setfsgid, sys_setfsgid16), // 139
-//zz=20
+ LINX_(__NR_setfsuid, sys_setfsuid16), // 138
+ LINX_(__NR_setfsgid, sys_setfsgid16), // 139
+=20
LINXY(__NR__llseek, sys_llseek), // 140
GENXY(__NR_getdents, sys_getdents), // 141
GENX_(__NR__newselect, sys_select), // 142
-//zz GENX_(__NR_flock, sys_flock), // 143
-//zz GENX_(__NR_msync, sys_msync), // 144
-//zz=20
+ GENX_(__NR_flock, sys_flock), // 143
+ GENX_(__NR_msync, sys_msync), // 144
+
GENXY(__NR_readv, sys_readv), // 145
GENX_(__NR_writev, sys_writev), // 146
-//zz GENX_(__NR_getsid, sys_getsid), // 147
-//zz GENX_(__NR_fdatasync, sys_fdatasync), // 148
+ GENX_(__NR_getsid, sys_getsid), // 147
+ GENX_(__NR_fdatasync, sys_fdatasync), // 148
LINXY(__NR__sysctl, sys_sysctl), // 149
-//zz=20
-//zz GENX_(__NR_mlock, sys_mlock), // 150
-//zz GENX_(__NR_munlock, sys_munlock), // 151
-//zz GENX_(__NR_mlockall, sys_mlockall), // 152
-//zz GENX_(__NR_munlockall, sys_munlockall), // 153
+
+ GENX_(__NR_mlock, sys_mlock), // 150
+ GENX_(__NR_munlock, sys_munlock), // 151
+ GENX_(__NR_mlockall, sys_mlockall), // 152
+ GENX_(__NR_munlockall, sys_munlockall), // 153
//zz GENXY(__NR_sched_setparam, sys_sched_setparam), // 154
//zz=20
GENXY(__NR_sched_getparam, sys_sched_getparam), // 155
|
|
From: Robert W. <rj...@du...> - 2005-06-08 22:51:55
|
On Wed, 2005-06-08 at 23:47 +0100, Julian Seward wrote:
> > I haven't had a chance to look into it yet - I was just curious if
> > anyone else was seeing this? Athlon 64 running FC3.
>
> Yeh, that was me with r3849 ("... AMD64 is also totalled. ...") I'll
> have it sorted within the next 24 hours. r3849 was a big big change
> re syscall wrappers.
Ah yes. Forgot about that.
|
|
From: Julian S. <js...@ac...> - 2005-06-08 22:47:46
|
> I haven't had a chance to look into it yet - I was just curious if
> anyone else was seeing this? Athlon 64 running FC3.
Yeh, that was me with r3849 ("... AMD64 is also totalled. ...") I'll
have it sorted within the next 24 hours. r3849 was a big big change
re syscall wrappers.
J
|
|
From: Robert W. <rj...@du...> - 2005-06-08 21:55:56
|
As of the latest revision, I'm seeing this: syscalls-generic.c: In function `vgSysWrap_generic_sys_fcntl64_before': syscalls-generic.c:2635: error: `VKI_F_GETLK64' undeclared (first use in this function) syscalls-generic.c:2635: error: (Each undeclared identifier is reported only once syscalls-generic.c:2635: error: for each function it appears in.) syscalls-generic.c:2636: error: `VKI_F_SETLK64' undeclared (first use in this function) syscalls-generic.c:2637: error: `VKI_F_SETLKW64' undeclared (first use in this function) I haven't had a chance to look into it yet - I was just curious if anyone else was seeing this? Athlon 64 running FC3. Regards, Robert. |
|
From: Oswald B. <os...@kd...> - 2005-06-08 21:32:58
|
On Wed, Jun 08, 2005 at 09:34:22PM +0200, Cerion Armour-Brown wrote: > Any chance of a peek at kde's scripts? > sure, it's all in svn. http://websvn.kde.org/trunk/KDE/kde-common/svn/hooks/ -- Hi! I'm a .signature virus! Copy me into your ~/.signature, please! -- Chaos, panic, and disorder - my work here is done. |
|
From: Cerion Armour-B. <ce...@op...> - 2005-06-08 20:57:46
|
On Wednesday 08 June 2005 22:47, Robert Walsh wrote: > I'm getting this: > > rjwalsh@phosphene ~/svn/valgrind-3 $ svn update > svn: Berkeley DB error while opening environment for filesystem > /home/svn/repos/valgrind/db: DB_RUNRECOVERY: Fatal error, run database > recovery > svn: bdb: PANIC: fatal region error detected; run recovery > > Regards, > Robert. Good grief! recovered again. Cerion |
|
From: Robert W. <rj...@du...> - 2005-06-08 20:47:47
|
I'm getting this:
rjwalsh@phosphene ~/svn/valgrind-3 $ svn update
svn: Berkeley DB error while opening environment for filesystem /home/svn/repos/valgrind/db:
DB_RUNRECOVERY: Fatal error, run database recovery
svn: bdb: PANIC: fatal region error detected; run recovery
Regards,
Robert.
|
|
From: Cerion Armour-B. <ce...@op...> - 2005-06-08 19:37:38
|
On Tuesday 07 June 2005 09:27, Oswald Buddenhagen wrote: > i think this order is suboptimal. the log should come before the > modifications list - otherwise you have to scroll too much if you only > want to skim over the changes. Updated post-commit script to put log first. On Wednesday 08 June 2005 19:20, Oswald Buddenhagen wrote: > On Wed, Jun 08, 2005 at 12:14:08PM -0500, Nicholas Nethercote wrote: > > >another note ... the logs of several reorganizations did not indicate > > >that svn copy/move was used > > > > it seems that the way Subversion represents these in the diffs is a > > bit confusing -- it does make it look a lot like you removed and then > > re-added the file under the new name. > > that's normal. the post-commit script can indicate the source of an add, > though - the kde scripts do it nicely (of course ;). Any chance of a peek at kde's scripts? Cheers, Cerion |
|
From: Oswald B. <os...@kd...> - 2005-06-08 17:20:11
|
On Wed, Jun 08, 2005 at 12:14:08PM -0500, Nicholas Nethercote wrote: > >another note ... the logs of several reorganizations did not indicate > >that svn copy/move was used > > it seems that the way Subversion represents these in the diffs is a > bit confusing -- it does make it look a lot like you removed and then > re-added the file under the new name. > that's normal. the post-commit script can indicate the source of an add, though - the kde scripts do it nicely (of course ;). -- Hi! I'm a .signature virus! Copy me into your ~/.signature, please! -- Chaos, panic, and disorder - my work here is done. |
|
From: Nicholas N. <nj...@cs...> - 2005-06-08 17:14:21
|
On Tue, 7 Jun 2005, Oswald Buddenhagen wrote: > i think this order is suboptimal. the log should come before the > modifications list - otherwise you have to scroll too much if you only > want to skim over the changes. Soudns good to me. > another note ... the logs of several reorganizations did not indicate > that svn copy/move was used - is this because the post-commit script did > not show it, or because it was not used, indeed? We're using it, it seems that the way Subversion represents these in the diffs is a bit confusing -- it does make it look a lot like you removed and then re-added the file under the new name. N |
|
From: Craig C. <cc...@us...> - 2005-06-08 15:36:41
|
Hi, This patch applies to Paul Mackerras' latest Valgrind PPC port (http://valgrind.org/downloads/pmk/valgrind-2.4.0-ppc.tar.bz2). In the sigprocmask system call, we insert the sigNo into gpr3 so that it can be the first argument for the signal handler. However, before the signal handler gets called, we write the syscall return value into gpr 3, overwriting sigNo and causing the sigNo argument to be incorrect (typically 0) in the signal handler. The attached patch hacks around this by saving the sigNo in the ppc version of the arch_thread structure. It then swaps it into gpr3 before the signal handler is called, and swaps the syscall return value back into gpr3 afterwards. Unrelated note: Defect 106293 (http://bugs.kde.org/show_bug.cgi?id=106293) is also of interest to Valgrind PPC users. Although this bug seems to exist on Valgrind 2.4 and 3.0 for all platforms, the symptoms are much more prevelant on PPC. If you are seeing unexpected leaks reported when using VALGRIND_DO_LEAK_CHECK, try applying the patch attached to that bug. Thanks, Craig -- Craig Chaney cc...@us... |
|
From: <sv...@va...> - 2005-06-08 10:47:08
|
Author: sewardj
Date: 2005-06-08 11:46:56 +0100 (Wed, 08 Jun 2005)
New Revision: 3853
Modified:
trunk/coregrind/m_syscalls/syscalls-generic.c
trunk/coregrind/m_syscalls/syscalls-x86-linux.c
Log:
Clean up after m_syscalls changes: reinstate a bunch more (x86)
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-generic.c 2005-06-08 01:47:28 UTC=
(rev 3852)
+++ trunk/coregrind/m_syscalls/syscalls-generic.c 2005-06-08 10:46:56 UTC=
(rev 3853)
@@ -2015,11 +2015,11 @@
);
}
=20
-//zz PRE(sys_nice, 0)
-//zz {
-//zz PRINT("sys_nice ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "nice", int, inc);
-//zz }
+PRE(sys_nice)
+{
+ PRINT("sys_nice ( %d )", ARG1);
+ PRE_REG_READ1(long, "nice", int, inc);
+}
=20
PRE(sys_sched_getscheduler)
{
@@ -2101,13 +2101,14 @@
//zz vki_u32, offset_low32, vki_u32, offset_high32);
//zz PRE_MEM_READ( "pwrite64(buf)", ARG2, ARG3 );
//zz }
-//zz=20
-//zz PRE(sys_sync, SfMayBlock)
-//zz {
-//zz PRINT("sys_sync ( )");
-//zz PRE_REG_READ0(long, "sync");
-//zz }
-//zz=20
+
+PRE(sys_sync)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_sync ( )");
+ PRE_REG_READ0(long, "sync");
+}
+
//zz PRE(sys_fstatfs, 0)
//zz {
//zz PRINT("sys_fstatfs ( %d, %p )",ARG1,ARG2);
@@ -2853,11 +2854,11 @@
PRE_REG_READ0(long, "getegid");
}
=20
-//zz PRE(sys_getgid16, 0)
-//zz {
-//zz PRINT("sys_getgid16 ( )");
-//zz PRE_REG_READ0(long, "getgid16");
-//zz }
+PRE(sys_getgid16)
+{
+ PRINT("sys_getgid16 ( )");
+ PRE_REG_READ0(long, "getgid16");
+}
=20
PRE(sys_getgid)
{
@@ -4793,12 +4794,12 @@
PRE_MEM_READ( "select(timeout)", ARG5, sizeof(struct vki_timeval) =
);
}
=20
-//zz PRE(sys_setgid16, 0)
-//zz {
-//zz PRINT("sys_setgid16 ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "setgid16", vki_old_gid_t, gid);
-//zz }
-//zz=20
+PRE(sys_setgid16)
+{
+ PRINT("sys_setgid16 ( %d )", ARG1);
+ PRE_REG_READ1(long, "setgid16", vki_old_gid_t, gid);
+}
+
//zz PRE(sys_setgid, 0)
//zz {
//zz PRINT("sys_setgid ( %d )", ARG1);
@@ -5011,14 +5012,15 @@
}
}
=20
-//zz PRE(sys_utime, SfMayBlock)
-//zz {
-//zz PRINT("sys_utime ( %p, %p )", ARG1,ARG2);
-//zz PRE_REG_READ2(long, "utime", char *, filename, struct utimbuf *,=
buf);
-//zz PRE_MEM_RASCIIZ( "utime(filename)", ARG1 );
-//zz if (ARG2 !=3D 0)
-//zz PRE_MEM_READ( "utime(buf)", ARG2, sizeof(struct vki_utimbuf) =
);
-//zz }
+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) );
+}
=20
PRE(sys_waitpid)
{
@@ -5405,89 +5407,91 @@
PRE_MEM_RASCIIZ( "mq_unlink(name)", ARG1 );
}
=20
-//zz PRE(sys_mq_timedsend, SfMayBlock)
-//zz {
-//zz PRINT("sys_mq_timedsend ( %d, %p, %llu, %d, %p )",
-//zz ARG1,ARG2,(ULong)ARG3,ARG4,ARG5);
-//zz PRE_REG_READ5(long, "mq_timedsend",
-//zz vki_mqd_t, mqdes, const char *, msg_ptr, vki_size_=
t, msg_len,
-//zz unsigned int, msg_prio, const struct timespec *, a=
bs_timeout);
-//zz if (!VG_(fd_allowed)(ARG1, "mq_timedsend", tid, False)) {
-//zz SET_STATUS_( -VKI_EBADF );
-//zz } else {
-//zz PRE_MEM_READ( "mq_timedsend(msg_ptr)", ARG2, ARG3 );
-//zz if (ARG5 !=3D 0)
-//zz PRE_MEM_READ( "mq_timedsend(abs_timeout)", ARG5,
-//zz sizeof(struct vki_timespec) );
-//zz }
-//zz }
-//zz=20
-//zz PRE(sys_mq_timedreceive, SfMayBlock)
-//zz {
-//zz PRINT("sys_mq_timedreceive( %d, %p, %llu, %p, %p )",
-//zz ARG1,ARG2,(ULong)ARG3,ARG4,ARG5);
-//zz PRE_REG_READ5(ssize_t, "mq_timedreceive",
-//zz vki_mqd_t, mqdes, char *, msg_ptr, vki_size_t, msg=
_len,
-//zz unsigned int *, msg_prio,
-//zz const struct timespec *, abs_timeout);
-//zz if (!VG_(fd_allowed)(ARG1, "mq_timedreceive", tid, False)) {
-//zz SET_STATUS_( -VKI_EBADF );
-//zz } else {
-//zz PRE_MEM_WRITE( "mq_timedreceive(msg_ptr)", ARG2, ARG3 );
-//zz if (ARG4 !=3D 0)
-//zz PRE_MEM_WRITE( "mq_timedreceive(msg_prio)",
-//zz ARG4, sizeof(unsigned int) );
-//zz if (ARG5 !=3D 0)
-//zz PRE_MEM_READ( "mq_timedreceive(abs_timeout)",
-//zz ARG5, sizeof(struct vki_timespec) );
-//zz }
-//zz }
-//zz=20
-//zz POST(sys_mq_timedreceive)
-//zz {
-//zz POST_MEM_WRITE( ARG2, ARG3 );
-//zz if (ARG4 !=3D 0)
-//zz POST_MEM_WRITE( ARG4, sizeof(unsigned int) );
-//zz }
-//zz=20
-//zz PRE(sys_mq_notify, 0)
-//zz {
-//zz PRINT("sys_mq_notify( %d, %p )", ARG1,ARG2 );
-//zz PRE_REG_READ2(long, "mq_notify",
-//zz vki_mqd_t, mqdes, const struct sigevent *, notific=
ation);
-//zz if (!VG_(fd_allowed)(ARG1, "mq_notify", tid, False))
-//zz SET_STATUS_( -VKI_EBADF );
-//zz else if (ARG2 !=3D 0)
-//zz PRE_MEM_READ( "mq_notify(notification)",
-//zz ARG2, sizeof(struct vki_sigevent) );
-//zz }
-//zz=20
-//zz PRE(sys_mq_getsetattr, 0)
-//zz {
-//zz PRINT("sys_mq_getsetattr( %d, %p, %p )", ARG1,ARG2,ARG3 );
-//zz PRE_REG_READ3(long, "mq_getsetattr",
-//zz vki_mqd_t, mqdes, const struct mq_attr *, mqstat,
-//zz struct mq_attr *, omqstat);
-//zz if (!VG_(fd_allowed)(ARG1, "mq_getsetattr", tid, False)) {
-//zz SET_STATUS_( -VKI_EBADF );
-//zz } else {
-//zz if (ARG2 !=3D 0) {
-//zz const struct vki_mq_attr *attr =3D (struct vki_mq_attr *)A=
RG2;
-//zz PRE_MEM_READ( "mq_getsetattr(mqstat->mq_flags)",
-//zz (Addr)&attr->mq_flags, sizeof(attr->mq_flag=
s) );
-//zz }
-//zz if (ARG3 !=3D 0)
-//zz PRE_MEM_WRITE( "mq_getsetattr(omqstat)", ARG3,
-//zz sizeof(struct vki_mq_attr) );
-//zz } =20
-//zz }
-//zz=20
-//zz POST(sys_mq_getsetattr)
-//zz {
-//zz if (ARG3 !=3D 0)
-//zz POST_MEM_WRITE( ARG3, sizeof(struct vki_mq_attr) );
-//zz }
-//zz=20
+PRE(sys_mq_timedsend)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_mq_timedsend ( %d, %p, %llu, %d, %p )",
+ ARG1,ARG2,(ULong)ARG3,ARG4,ARG5);
+ PRE_REG_READ5(long, "mq_timedsend",
+ vki_mqd_t, mqdes, const char *, msg_ptr, vki_size_t, ms=
g_len,
+ unsigned int, msg_prio, const struct timespec *, abs_ti=
meout);
+ if (!VG_(fd_allowed)(ARG1, "mq_timedsend", tid, False)) {
+ SET_STATUS_Failure( VKI_EBADF );
+ } else {
+ PRE_MEM_READ( "mq_timedsend(msg_ptr)", ARG2, ARG3 );
+ if (ARG5 !=3D 0)
+ PRE_MEM_READ( "mq_timedsend(abs_timeout)", ARG5,
+ sizeof(struct vki_timespec) );
+ }
+}
+
+PRE(sys_mq_timedreceive)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_mq_timedreceive( %d, %p, %llu, %p, %p )",
+ ARG1,ARG2,(ULong)ARG3,ARG4,ARG5);
+ PRE_REG_READ5(ssize_t, "mq_timedreceive",
+ vki_mqd_t, mqdes, char *, msg_ptr, vki_size_t, msg_len,
+ unsigned int *, msg_prio,
+ const struct timespec *, abs_timeout);
+ if (!VG_(fd_allowed)(ARG1, "mq_timedreceive", tid, False)) {
+ SET_STATUS_Failure( VKI_EBADF );
+ } else {
+ PRE_MEM_WRITE( "mq_timedreceive(msg_ptr)", ARG2, ARG3 );
+ if (ARG4 !=3D 0)
+ PRE_MEM_WRITE( "mq_timedreceive(msg_prio)",
+ ARG4, sizeof(unsigned int) );
+ if (ARG5 !=3D 0)
+ PRE_MEM_READ( "mq_timedreceive(abs_timeout)",
+ ARG5, sizeof(struct vki_timespec) );
+ }
+}
+
+POST(sys_mq_timedreceive)
+{
+ POST_MEM_WRITE( ARG2, ARG3 );
+ if (ARG4 !=3D 0)
+ POST_MEM_WRITE( ARG4, sizeof(unsigned int) );
+}
+
+PRE(sys_mq_notify)
+{
+ PRINT("sys_mq_notify( %d, %p )", ARG1,ARG2 );
+ PRE_REG_READ2(long, "mq_notify",
+ vki_mqd_t, mqdes, const struct sigevent *, notification=
);
+ if (!VG_(fd_allowed)(ARG1, "mq_notify", tid, False))
+ SET_STATUS_Failure( VKI_EBADF );
+ else if (ARG2 !=3D 0)
+ PRE_MEM_READ( "mq_notify(notification)",
+ ARG2, sizeof(struct vki_sigevent) );
+}
+
+PRE(sys_mq_getsetattr)
+{
+ PRINT("sys_mq_getsetattr( %d, %p, %p )", ARG1,ARG2,ARG3 );
+ PRE_REG_READ3(long, "mq_getsetattr",
+ vki_mqd_t, mqdes, const struct mq_attr *, mqstat,
+ struct mq_attr *, omqstat);
+ if (!VG_(fd_allowed)(ARG1, "mq_getsetattr", tid, False)) {
+ SET_STATUS_Failure( VKI_EBADF );
+ } else {
+ if (ARG2 !=3D 0) {
+ const struct vki_mq_attr *attr =3D (struct vki_mq_attr *)ARG2;
+ PRE_MEM_READ( "mq_getsetattr(mqstat->mq_flags)",
+ (Addr)&attr->mq_flags, sizeof(attr->mq_flags) );
+ }
+ if (ARG3 !=3D 0)
+ PRE_MEM_WRITE( "mq_getsetattr(omqstat)", ARG3,
+ sizeof(struct vki_mq_attr) );
+ } =20
+}
+
+POST(sys_mq_getsetattr)
+{
+ if (ARG3 !=3D 0)
+ POST_MEM_WRITE( ARG3, sizeof(struct vki_mq_attr) );
+}
+
//zz PRE(sys_timer_create, 0)
//zz {
//zz PRINT("sys_timer_create( %d, %p, %p )", ARG1,ARG2,ARG3);
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-x86-linux.c 2005-06-08 01:47:28 U=
TC (rev 3852)
+++ trunk/coregrind/m_syscalls/syscalls-x86-linux.c 2005-06-08 10:46:56 U=
TC (rev 3853)
@@ -1950,15 +1950,15 @@
GENX_(__NR_alarm, sys_alarm), // 27
//zz // (__NR_oldfstat, sys_fstat), // 28 * L -- =
obsolete
GENX_(__NR_pause, sys_pause), // 29
-//zz=20
-//zz GENX_(__NR_utime, sys_utime), // 30
+
+ GENX_(__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
-//zz GENX_(__NR_nice, sys_nice), // 34
-//zz=20
+ GENX_(__NR_nice, sys_nice), // 34
+
GENX_(__NR_ftime, sys_ni_syscall), // 35
-//zz GENX_(__NR_sync, sys_sync), // 36
+ GENX_(__NR_sync, sys_sync), // 36
GENX_(__NR_kill, sys_kill), // 37
GENX_(__NR_rename, sys_rename), // 38
GENX_(__NR_mkdir, sys_mkdir), // 39
@@ -1970,8 +1970,8 @@
GENX_(__NR_prof, sys_ni_syscall), // 44
//zz=20
GENX_(__NR_brk, sys_brk), // 45
-//zz GENX_(__NR_setgid, sys_setgid16), // 46
-//zz GENX_(__NR_getgid, sys_getgid16), // 47
+ GENX_(__NR_setgid, sys_setgid16), // 46
+ GENX_(__NR_getgid, sys_getgid16), // 47
//zz // (__NR_signal, sys_signal), // 48 */* (AN=
SI C)
GENX_(__NR_geteuid, sys_geteuid16), // 49
//zz=20
@@ -2252,11 +2252,11 @@
//zz // (__NR_set_mempolicy, sys_set_mempolicy), // 276 ?/?
GENXY(__NR_mq_open, sys_mq_open), // 277
GENX_(__NR_mq_unlink, sys_mq_unlink), // (mq_open+1)
-//zz GENX_(__NR_mq_timedsend, sys_mq_timedsend), // (mq_open+2=
)
-//zz=20
-//zz GENXY(__NR_mq_timedreceive, sys_mq_timedreceive),// (mq_open+3=
)
-//zz GENX_(__NR_mq_notify, sys_mq_notify), // (mq_open+4=
)
-//zz GENXY(__NR_mq_getsetattr, sys_mq_getsetattr), // (mq_open+5=
)
+ GENX_(__NR_mq_timedsend, sys_mq_timedsend), // (mq_open+2)
+
+ GENXY(__NR_mq_timedreceive, sys_mq_timedreceive),// (mq_open+3)
+ GENX_(__NR_mq_notify, sys_mq_notify), // (mq_open+4)
+ GENXY(__NR_mq_getsetattr, sys_mq_getsetattr), // (mq_open+5)
GENX_(__NR_sys_kexec_load, sys_ni_syscall), // 283
};
=20
|
|
From: Tom H. <th...@cy...> - 2005-06-08 03:12:27
|
Nightly build on audi ( i686, Red Hat 9 ) started at 2005-06-08 03:25:02 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 == 176 tests, 10 stderr failures, 1 stdout failure ================= memcheck/tests/sigaltstack (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/pth_cancel1 (stdout) corecheck/tests/pth_cancel1 (stderr) corecheck/tests/pth_cancel2 (stderr) none/tests/faultstatus (stderr) none/tests/pth_blockedsig (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2005-06-08 02:50:06
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-06-08 03:50:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow Nightly build on phoenix ( SuSE 9.1 ) started at 2005-06-08 03:50:00 BST |
|
From: Tom H. <th...@cy...> - 2005-06-08 02:25:40
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-06-08 03:20:02 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 == 175 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/vgtest_ume (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) corecheck/tests/fdleak_cmsg (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-06-08 02:20:34
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-06-08 03:15:02 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 == 175 tests, 14 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (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/pointer-trace (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) corecheck/tests/fdleak_cmsg (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/yield (stdout) |
|
From: Tom H. <th...@cy...> - 2005-06-08 02:11:25
|
Nightly build on dellow ( x86_64, Fedora Core 3 ) started at 2005-06-08 03:10:04 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of log.verbose follow ranlib libsigframe.a make[3]: Leaving directory `/tmp/valgrind.31092/valgrind/coregrind/m_sigframe' Making all in m_syscalls make[3]: Entering directory `/tmp/valgrind.31092/valgrind/coregrind/m_syscalls' gcc -I../../coregrind -I../.. -I../../coregrind/amd64 -I../../coregrind/linux -I../../coregrind/amd64-linux -I../../include -I/tmp/valgrind.31092/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -m64 -Wa,-gstabs -Wno-long-long -c syscall-amd64-linux.S if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../coregrind -I../.. -I../../coregrind/amd64 -I../../coregrind/linux -I../../coregrind/amd64-linux -I../../include -I/tmp/valgrind.31092/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -fpie -m64 -fomit-frame-pointer -DELFSZ=64 -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -MT syscalls-generic.o -MD -MP -MF ".deps/syscalls-generic.Tpo" -c -o syscalls-generic.o syscalls-generic.c; \ then mv -f ".deps/syscalls-generic.Tpo" ".deps/syscalls-generic.Po"; else rm -f ".deps/syscalls-generic.Tpo"; exit 1; fi syscalls-generic.c: In function `vgSysWrap_generic_sys_fcntl64_before': syscalls-generic.c:2634: error: `VKI_F_GETLK64' undeclared (first use in this function) syscalls-generic.c:2634: error: (Each undeclared identifier is reported only once syscalls-generic.c:2634: error: for each function it appears in.) syscalls-generic.c:2635: error: `VKI_F_SETLK64' undeclared (first use in this function) syscalls-generic.c:2636: error: `VKI_F_SETLKW64' undeclared (first use in this function) make[3]: *** [syscalls-generic.o] Error 1 make[3]: Leaving directory `/tmp/valgrind.31092/valgrind/coregrind/m_syscalls' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.31092/valgrind/coregrind' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.31092/valgrind' make: *** [all] Error 2 |
|
From: Tom H. <th...@cy...> - 2005-06-08 02:01:41
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-06-08 03:00:03 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of log.verbose follow ranlib libsigframe.a make[3]: Leaving directory `/tmp/valgrind.6404/valgrind/coregrind/m_sigframe' Making all in m_syscalls make[3]: Entering directory `/tmp/valgrind.6404/valgrind/coregrind/m_syscalls' gcc -I../../coregrind -I../.. -I../../coregrind/amd64 -I../../coregrind/linux -I../../coregrind/amd64-linux -I../../include -I/tmp/valgrind.6404/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -m64 -Wa,-gstabs -Wno-long-long -c syscall-amd64-linux.S if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../coregrind -I../.. -I../../coregrind/amd64 -I../../coregrind/linux -I../../coregrind/amd64-linux -I../../include -I/tmp/valgrind.6404/vex/pub -DVGA_amd64=1 -DVGO_linux=1 -DVGP_amd64_linux=1 -fpie -m64 -fomit-frame-pointer -DELFSZ=64 -Wmissing-prototypes -Winline -Wall -Wshadow -O -g -Wno-long-long -MT syscalls-generic.o -MD -MP -MF ".deps/syscalls-generic.Tpo" -c -o syscalls-generic.o syscalls-generic.c; \ then mv -f ".deps/syscalls-generic.Tpo" ".deps/syscalls-generic.Po"; else rm -f ".deps/syscalls-generic.Tpo"; exit 1; fi syscalls-generic.c: In function `vgSysWrap_generic_sys_fcntl64_before': syscalls-generic.c:2634: error: `VKI_F_GETLK64' undeclared (first use in this function) syscalls-generic.c:2634: error: (Each undeclared identifier is reported only once syscalls-generic.c:2634: error: for each function it appears in.) syscalls-generic.c:2635: error: `VKI_F_SETLK64' undeclared (first use in this function) syscalls-generic.c:2636: error: `VKI_F_SETLKW64' undeclared (first use in this function) make[3]: *** [syscalls-generic.o] Error 1 make[3]: Leaving directory `/tmp/valgrind.6404/valgrind/coregrind/m_syscalls' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.6404/valgrind/coregrind' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.6404/valgrind' make: *** [all] Error 2 |
|
From: <sv...@va...> - 2005-06-08 01:47:31
|
Author: sewardj
Date: 2005-06-08 02:47:28 +0100 (Wed, 08 Jun 2005)
New Revision: 3852
Modified:
trunk/coregrind/m_syscalls/syscalls-generic.c
trunk/coregrind/m_syscalls/syscalls-linux.c
trunk/coregrind/m_syscalls/syscalls-x86-linux.c
Log:
Clean up after m_syscalls changes: reinstate enough syscalls (x86) to
be able to run mozilla and OOo on LinuxThreads.
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-generic.c 2005-06-08 01:01:48 UTC=
(rev 3851)
+++ trunk/coregrind/m_syscalls/syscalls-generic.c 2005-06-08 01:47:28 UTC=
(rev 3852)
@@ -1670,11 +1670,12 @@
SET_STATUS_Success(0);
}
=20
-//zz PRE(sys_sched_yield, SfMayBlock)
-//zz {
-//zz PRINT("sched_yield()");
-//zz PRE_REG_READ0(long, "sys_sched_yield");
-//zz }
+PRE(sys_sched_yield)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sched_yield()");
+ PRE_REG_READ0(long, "sys_sched_yield");
+}
=20
PRE(sys_ni_syscall)
{
@@ -1866,13 +1867,14 @@
//zz if (ARG3 !=3D (Addr)NULL)
//zz POST_MEM_WRITE( ARG3, RES);
//zz }
-//zz=20
-//zz PRE(sys_fsync, SfMayBlock)
-//zz {
-//zz PRINT("sys_fsync ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "fsync", unsigned int, fd);
-//zz }
-//zz=20
+
+PRE(sys_fsync)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_fsync ( %d )", ARG1);
+ PRE_REG_READ1(long, "fsync", unsigned int, fd);
+}
+
//zz PRE(sys_fdatasync, SfMayBlock)
//zz {
//zz PRINT("sys_fdatasync ( %d )", ARG1);
@@ -2018,23 +2020,23 @@
//zz PRINT("sys_nice ( %d )", ARG1);
//zz PRE_REG_READ1(long, "nice", int, inc);
//zz }
-//zz=20
-//zz PRE(sys_sched_getscheduler, 0)
-//zz {
-//zz PRINT("sys_sched_getscheduler ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "sched_getscheduler", vki_pid_t, pid);
-//zz }
-//zz=20
-//zz PRE(sys_sched_setscheduler, 0)
-//zz {
-//zz PRINT("sys_sched_setscheduler ( %d, %d, %p )", ARG1,ARG2,ARG3);
-//zz PRE_REG_READ3(long, "sched_setscheduler",=20
-//zz vki_pid_t, pid, int, policy, struct sched_param *,=
p);
-//zz if (ARG3 !=3D 0)
-//zz PRE_MEM_READ( "sched_setscheduler(p)",=20
-//zz ARG3, sizeof(struct vki_sched_param));
-//zz }
-//zz=20
+
+PRE(sys_sched_getscheduler)
+{
+ PRINT("sys_sched_getscheduler ( %d )", ARG1);
+ PRE_REG_READ1(long, "sched_getscheduler", vki_pid_t, pid);
+}
+
+PRE(sys_sched_setscheduler)
+{
+ PRINT("sys_sched_setscheduler ( %d, %d, %p )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "sched_setscheduler",=20
+ vki_pid_t, pid, int, policy, struct sched_param *, p);
+ if (ARG3 !=3D 0)
+ PRE_MEM_READ( "sched_setscheduler(p)",=20
+ ARG3, sizeof(struct vki_sched_param));
+}
+
//zz PRE(sys_mlock, SfMayBlock)
//zz {
//zz PRINT("sys_mlock ( %p, %llu )", ARG1, (ULong)ARG2);
@@ -2058,19 +2060,19 @@
//zz PRINT("sys_munlockall ( )");
//zz PRE_REG_READ0(long, "munlockall");
//zz }
-//zz=20
-//zz PRE(sys_sched_get_priority_max, 0)
-//zz {
-//zz PRINT("sched_get_priority_max ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "sched_get_priority_max", int, policy);
-//zz }
-//zz=20
-//zz PRE(sys_sched_get_priority_min, 0)
-//zz {
-//zz PRINT("sched_get_priority_min ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "sched_get_priority_min", int, policy);
-//zz }
-//zz=20
+
+PRE(sys_sched_get_priority_max)
+{
+ PRINT("sched_get_priority_max ( %d )", ARG1);
+ PRE_REG_READ1(long, "sched_get_priority_max", int, policy);
+}
+
+PRE(sys_sched_get_priority_min)
+{
+ PRINT("sched_get_priority_min ( %d )", ARG1);
+ PRE_REG_READ1(long, "sched_get_priority_min", int, policy);
+}
+
//zz PRE(sys_setpriority, 0)
//zz {
//zz PRINT("sys_setpriority ( %d, %d, %d )", ARG1, ARG2, ARG3);
@@ -2747,25 +2749,27 @@
//zz PRE_MEM_RASCIIZ( "truncate64(path)", ARG1 );
//zz }
//zz=20
-//zz=20
-//zz PRE(sys_getdents, SfMayBlock)
-//zz {
-//zz PRINT("sys_getdents ( %d, %p, %d )", ARG1,ARG2,ARG3);
-//zz PRE_REG_READ3(long, "getdents",
-//zz unsigned int, fd, struct linux_dirent *, dirp,
-//zz unsigned int, count);
-//zz PRE_MEM_WRITE( "getdents(dirp)", ARG2, ARG3 );
-//zz }
-//zz=20
-//zz POST(sys_getdents)
-//zz {
-//zz if (RES > 0)
-//zz POST_MEM_WRITE( ARG2, RES );
-//zz }
=20
+PRE(sys_getdents)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_getdents ( %d, %p, %d )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "getdents",
+ unsigned int, fd, struct linux_dirent *, dirp,
+ unsigned int, count);
+ PRE_MEM_WRITE( "getdents(dirp)", ARG2, ARG3 );
+}
+
+POST(sys_getdents)
+{
+ vg_assert(SUCCESS);
+ if (RES > 0)
+ POST_MEM_WRITE( ARG2, RES );
+}
+
PRE(sys_getdents64)
{
- *flags |=3D SfMayBlock;
+ *flags |=3D SfMayBlock;
PRINT("sys_getdents64 ( %d, %p, %d )",ARG1,ARG2,ARG3);
PRE_REG_READ3(long, "getdents64",
unsigned int, fd, struct linux_dirent64 *, dirp,
@@ -2793,21 +2797,22 @@
//zz if (ARG1 > 0 && RES > 0)
//zz POST_MEM_WRITE( ARG2, RES * sizeof(vki_old_gid_t) );
//zz }
-//zz=20
-//zz PRE(sys_getgroups, 0)
-//zz {
-//zz PRINT("sys_getgroups ( %d, %p )", ARG1, ARG2);
-//zz PRE_REG_READ2(long, "getgroups", int, size, vki_gid_t *, list);
-//zz if (ARG1 > 0)
-//zz PRE_MEM_WRITE( "getgroups(list)", ARG2, ARG1 * sizeof(vki_gid=
_t) );
-//zz }
-//zz=20
-//zz POST(sys_getgroups)
-//zz {
-//zz if (ARG1 > 0 && RES > 0)
-//zz POST_MEM_WRITE( ARG2, RES * sizeof(vki_gid_t) );
-//zz }
=20
+PRE(sys_getgroups)
+{
+ PRINT("sys_getgroups ( %d, %p )", ARG1, ARG2);
+ PRE_REG_READ2(long, "getgroups", int, size, vki_gid_t *, list);
+ if (ARG1 > 0)
+ PRE_MEM_WRITE( "getgroups(list)", ARG2, ARG1 * sizeof(vki_gid_t) )=
;
+}
+
+POST(sys_getgroups)
+{
+ vg_assert(SUCCESS);
+ if (ARG1 > 0 && RES > 0)
+ POST_MEM_WRITE( ARG2, RES * sizeof(vki_gid_t) );
+}
+
PRE(sys_getcwd)
{
// Note that the kernel version of getcwd() behaves quite differently=
to
@@ -2841,25 +2846,25 @@
//zz PRINT("sys_getegid16 ( )");
//zz PRE_REG_READ0(long, "getegid16");
//zz }
-//zz=20
-//zz PRE(sys_getegid, 0)
-//zz {
-//zz PRINT("sys_getegid ( )");
-//zz PRE_REG_READ0(long, "getegid");
-//zz }
-//zz=20
+
+PRE(sys_getegid)
+{
+ PRINT("sys_getegid ( )");
+ PRE_REG_READ0(long, "getegid");
+}
+
//zz PRE(sys_getgid16, 0)
//zz {
//zz PRINT("sys_getgid16 ( )");
//zz PRE_REG_READ0(long, "getgid16");
//zz }
-//zz=20
-//zz PRE(sys_getgid, 0)
-//zz {
-//zz PRINT("sys_getgid ( )");
-//zz PRE_REG_READ0(long, "getgid");
-//zz }
=20
+PRE(sys_getgid)
+{
+ PRINT("sys_getgid ( )");
+ PRE_REG_READ0(long, "getgid");
+}
+
PRE(sys_getpid)
{
PRINT("sys_getpid ()");
@@ -2871,13 +2876,13 @@
//zz PRINT("sys_getpgid ( %d )", ARG1);
//zz PRE_REG_READ1(long, "getpgid", vki_pid_t, pid);
//zz }
-//zz=20
-//zz PRE(sys_getpgrp, 0)
-//zz {
-//zz PRINT("sys_getpgrp ()");
-//zz PRE_REG_READ0(long, "getpgrp");
-//zz }
=20
+PRE(sys_getpgrp)
+{
+ PRINT("sys_getpgrp ()");
+ PRE_REG_READ0(long, "getpgrp");
+}
+
PRE(sys_getppid)
{
PRINT("sys_getppid ()");
@@ -4733,13 +4738,14 @@
PRE_MEM_RASCIIZ( "rename(newpath)", ARG2 );
}
=20
-//zz PRE(sys_rmdir, SfMayBlock)
-//zz {
-//zz PRINT("sys_rmdir ( %p )", ARG1);
-//zz PRE_REG_READ1(long, "rmdir", const char *, pathname);
-//zz PRE_MEM_RASCIIZ( "rmdir(pathname)", ARG1 );
-//zz }
-//zz=20
+PRE(sys_rmdir)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_rmdir ( %p )", ARG1);
+ PRE_REG_READ1(long, "rmdir", const char *, pathname);
+ PRE_MEM_RASCIIZ( "rmdir(pathname)", ARG1 );
+}
+
//zz PRE(sys_sched_setparam, 0)
//zz {
//zz PRINT("sched_setparam ( %d, %p )", ARG1, ARG2 );
@@ -4752,20 +4758,20 @@
//zz {
//zz POST_MEM_WRITE( ARG2, sizeof(struct vki_sched_param) );
//zz }
-//zz=20
-//zz PRE(sys_sched_getparam, 0)
-//zz {
-//zz PRINT("sched_getparam ( %d, %p )", ARG1, ARG2 );
-//zz PRE_REG_READ2(long, "sched_getparam",=20
-//zz vki_pid_t, pid, struct sched_param *, p);
-//zz PRE_MEM_WRITE( "sched_getparam(p)", ARG2, sizeof(struct vki_sche=
d_param) );
-//zz }
-//zz=20
-//zz POST(sys_sched_getparam)
-//zz {
-//zz POST_MEM_WRITE( ARG2, sizeof(struct vki_sched_param) );
-//zz }
=20
+PRE(sys_sched_getparam)
+{
+ PRINT("sched_getparam ( %d, %p )", ARG1, ARG2 );
+ PRE_REG_READ2(long, "sched_getparam",=20
+ vki_pid_t, pid, struct sched_param *, p);
+ PRE_MEM_WRITE( "sched_getparam(p)", ARG2, sizeof(struct vki_sched_par=
am) );
+}
+
+POST(sys_sched_getparam)
+{
+ POST_MEM_WRITE( ARG2, sizeof(struct vki_sched_param) );
+}
+
PRE(sys_select)
{
*flags |=3D SfMayBlock;
@@ -4936,15 +4942,16 @@
//zz {
//zz POST_MEM_WRITE( ARG3, ARG2 );
//zz }
-//zz=20
-//zz PRE(sys_symlink, SfMayBlock)
-//zz {
-//zz PRINT("sys_symlink ( %p, %p )",ARG1,ARG2);
-//zz PRE_REG_READ2(long, "symlink", const char *, oldpath, const char=
*, newpath);
-//zz PRE_MEM_RASCIIZ( "symlink(oldpath)", ARG1 );
-//zz PRE_MEM_RASCIIZ( "symlink(newpath)", ARG2 );
-//zz }
=20
+PRE(sys_symlink)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_symlink ( %p, %p )",ARG1,ARG2);
+ PRE_REG_READ2(long, "symlink", const char *, oldpath, const char *, n=
ewpath);
+ PRE_MEM_RASCIIZ( "symlink(oldpath)", ARG1 );
+ PRE_MEM_RASCIIZ( "symlink(newpath)", ARG2 );
+}
+
PRE(sys_time)
{
/* time_t time(time_t *t); */
@@ -4962,26 +4969,26 @@
}
}
=20
-//zz PRE(sys_times, 0)
-//zz {
-//zz PRINT("sys_times ( %p )", ARG1);
-//zz PRE_REG_READ1(long, "times", struct tms *, buf);
-//zz PRE_MEM_WRITE( "times(buf)", ARG1, sizeof(struct vki_tms) );
-//zz }
-//zz=20
-//zz POST(sys_times)
-//zz {
-//zz if (ARG1 !=3D 0) {
-//zz POST_MEM_WRITE( ARG1, sizeof(struct vki_tms) );
-//zz }
-//zz }
-//zz=20
-//zz PRE(sys_umask, 0)
-//zz {
-//zz PRINT("sys_umask ( %d )", ARG1);
-//zz PRE_REG_READ1(long, "umask", int, mask);
-//zz }
+PRE(sys_times)
+{
+ PRINT("sys_times ( %p )", ARG1);
+ PRE_REG_READ1(long, "times", struct tms *, buf);
+ PRE_MEM_WRITE( "times(buf)", ARG1, sizeof(struct vki_tms) );
+}
=20
+POST(sys_times)
+{
+ if (ARG1 !=3D 0) {
+ POST_MEM_WRITE( ARG1, sizeof(struct vki_tms) );
+ }
+}
+
+PRE(sys_umask)
+{
+ PRINT("sys_umask ( %d )", ARG1);
+ PRE_REG_READ1(long, "umask", int, mask);
+}
+
PRE(sys_unlink)
{
*flags |=3D SfMayBlock;
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-linux.c 2005-06-08 01:01:48 UTC (=
rev 3851)
+++ trunk/coregrind/m_syscalls/syscalls-linux.c 2005-06-08 01:47:28 UTC (=
rev 3852)
@@ -220,26 +220,27 @@
//zz POST_MEM_WRITE( ARG3, sizeof(vki_old_uid_t) );
//zz }
//zz }
-//zz=20
-//zz PRE(sys_getresuid, 0)
-//zz {
-//zz PRINT("sys_getresuid ( %p, %p, %p )", ARG1,ARG2,ARG3);
-//zz PRE_REG_READ3(long, "getresuid",=20
-//zz vki_uid_t *, ruid, vki_uid_t *, euid, vki_uid_t *,=
suid);
-//zz PRE_MEM_WRITE( "getresuid(ruid)", ARG1, sizeof(vki_uid_t) );
-//zz PRE_MEM_WRITE( "getresuid(euid)", ARG2, sizeof(vki_uid_t) );
-//zz PRE_MEM_WRITE( "getresuid(suid)", ARG3, sizeof(vki_uid_t) );
-//zz }
-//zz=20
-//zz POST(sys_getresuid)
-//zz {
-//zz if (RES =3D=3D 0) {
-//zz POST_MEM_WRITE( ARG1, sizeof(vki_uid_t) );
-//zz POST_MEM_WRITE( ARG2, sizeof(vki_uid_t) );
-//zz POST_MEM_WRITE( ARG3, sizeof(vki_uid_t) );
-//zz }
-//zz }
-//zz=20
+
+PRE(sys_getresuid)
+{
+ PRINT("sys_getresuid ( %p, %p, %p )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "getresuid",=20
+ vki_uid_t *, ruid, vki_uid_t *, euid, vki_uid_t *, suid=
);
+ PRE_MEM_WRITE( "getresuid(ruid)", ARG1, sizeof(vki_uid_t) );
+ PRE_MEM_WRITE( "getresuid(euid)", ARG2, sizeof(vki_uid_t) );
+ PRE_MEM_WRITE( "getresuid(suid)", ARG3, sizeof(vki_uid_t) );
+}
+
+POST(sys_getresuid)
+{
+ vg_assert(SUCCESS);
+ if (RES =3D=3D 0) {
+ POST_MEM_WRITE( ARG1, sizeof(vki_uid_t) );
+ POST_MEM_WRITE( ARG2, sizeof(vki_uid_t) );
+ POST_MEM_WRITE( ARG3, sizeof(vki_uid_t) );
+ }
+}
+
//zz PRE(sys_setresgid16, 0)
//zz {
//zz PRINT("sys_setresgid16 ( %d, %d, %d )", ARG1, ARG2, ARG3);
@@ -273,26 +274,27 @@
//zz POST_MEM_WRITE( ARG3, sizeof(vki_old_gid_t) );
//zz }
//zz }
-//zz=20
-//zz PRE(sys_getresgid, 0)
-//zz {
-//zz PRINT("sys_getresgid ( %p, %p, %p )", ARG1,ARG2,ARG3);
-//zz PRE_REG_READ3(long, "getresgid",=20
-//zz vki_gid_t *, rgid, vki_gid_t *, egid, vki_gid_t *,=
sgid);
-//zz PRE_MEM_WRITE( "getresgid(rgid)", ARG1, sizeof(vki_gid_t) );
-//zz PRE_MEM_WRITE( "getresgid(egid)", ARG2, sizeof(vki_gid_t) );
-//zz PRE_MEM_WRITE( "getresgid(sgid)", ARG3, sizeof(vki_gid_t) );
-//zz }
-//zz=20
-//zz POST(sys_getresgid)
-//zz {
-//zz if (RES =3D=3D 0) {
-//zz POST_MEM_WRITE( ARG1, sizeof(vki_gid_t) );
-//zz POST_MEM_WRITE( ARG2, sizeof(vki_gid_t) );
-//zz POST_MEM_WRITE( ARG3, sizeof(vki_gid_t) );
-//zz }
-//zz }
-//zz=20
+
+PRE(sys_getresgid)
+{
+ PRINT("sys_getresgid ( %p, %p, %p )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "getresgid",=20
+ vki_gid_t *, rgid, vki_gid_t *, egid, vki_gid_t *, sgid=
);
+ PRE_MEM_WRITE( "getresgid(rgid)", ARG1, sizeof(vki_gid_t) );
+ PRE_MEM_WRITE( "getresgid(egid)", ARG2, sizeof(vki_gid_t) );
+ PRE_MEM_WRITE( "getresgid(sgid)", ARG3, sizeof(vki_gid_t) );
+}
+
+POST(sys_getresgid)
+{
+ vg_assert(SUCCESS);
+ if (RES =3D=3D 0) {
+ POST_MEM_WRITE( ARG1, sizeof(vki_gid_t) );
+ POST_MEM_WRITE( ARG2, sizeof(vki_gid_t) );
+ POST_MEM_WRITE( ARG3, sizeof(vki_gid_t) );
+ }
+}
+
//zz PRE(sys_ioperm, 0)
//zz {
//zz PRINT("sys_ioperm ( %d, %d, %d )", ARG1, ARG2, ARG3 );
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-x86-linux.c 2005-06-08 01:01:48 U=
TC (rev 3851)
+++ trunk/coregrind/m_syscalls/syscalls-x86-linux.c 2005-06-08 01:47:28 U=
TC (rev 3852)
@@ -1962,11 +1962,11 @@
GENX_(__NR_kill, sys_kill), // 37
GENX_(__NR_rename, sys_rename), // 38
GENX_(__NR_mkdir, sys_mkdir), // 39
-//zz=20
-//zz GENX_(__NR_rmdir, sys_rmdir), // 40
+
+ GENX_(__NR_rmdir, sys_rmdir), // 40
GENXY(__NR_dup, sys_dup), // 41
GENXY(__NR_pipe, sys_pipe), // 42
-//zz GENXY(__NR_times, sys_times), // 43
+ GENXY(__NR_times, sys_times), // 43
GENX_(__NR_prof, sys_ni_syscall), // 44
//zz=20
GENX_(__NR_brk, sys_brk), // 45
@@ -1987,13 +1987,13 @@
GENX_(__NR_ulimit, sys_ni_syscall), // 58
//zz // (__NR_oldolduname, sys_olduname), // 59 Linux -=
- obsolete
//zz=20
-//zz GENX_(__NR_umask, sys_umask), // 60
+ GENX_(__NR_umask, sys_umask), // 60
//zz GENX_(__NR_chroot, sys_chroot), // 61
//zz // (__NR_ustat, sys_ustat) // 62 SVr4 --=
deprecated
GENXY(__NR_dup2, sys_dup2), // 63
GENX_(__NR_getppid, sys_getppid), // 64
-//zz=20
-//zz GENX_(__NR_getpgrp, sys_getpgrp), // 65
+
+ GENX_(__NR_getpgrp, sys_getpgrp), // 65
//zz GENX_(__NR_setsid, sys_setsid), // 66
//zz PLAXY(__NR_sigaction, sys_sigaction), // 67
//zz // (__NR_sgetmask, sys_sgetmask), // 68 */* (AN=
SI C)
@@ -2014,7 +2014,7 @@
//zz GENXY(__NR_getgroups, sys_getgroups16), // 80
//zz GENX_(__NR_setgroups, sys_setgroups16), // 81
//zz PLAX_(__NR_select, old_select), // 82
-//zz GENX_(__NR_symlink, sys_symlink), // 83
+ GENX_(__NR_symlink, sys_symlink), // 83
//zz // (__NR_oldlstat, sys_lstat), // 84 -- obso=
lete
//zz=20
GENX_(__NR_readlink, sys_readlink), // 85
@@ -2056,7 +2056,7 @@
//zz // (__NR_swapoff, sys_swapoff), // 115 */Linu=
x=20
//zz LINXY(__NR_sysinfo, sys_sysinfo), // 116
PLAXY(__NR_ipc, sys_ipc), // 117
-//zz GENX_(__NR_fsync, sys_fsync), // 118
+ GENX_(__NR_fsync, sys_fsync), // 118
PLAX_(__NR_sigreturn, sys_sigreturn), // 119 ?/Linux
=20
PLAX_(__NR_clone, sys_clone), // 120
@@ -2086,7 +2086,7 @@
//zz LINX_(__NR_setfsgid, sys_setfsgid16), // 139
//zz=20
LINXY(__NR__llseek, sys_llseek), // 140
-//zz GENXY(__NR_getdents, sys_getdents), // 141
+ GENXY(__NR_getdents, sys_getdents), // 141
GENX_(__NR__newselect, sys_select), // 142
//zz GENX_(__NR_flock, sys_flock), // 143
//zz GENX_(__NR_msync, sys_msync), // 144
@@ -2103,13 +2103,13 @@
//zz GENX_(__NR_munlockall, sys_munlockall), // 153
//zz GENXY(__NR_sched_setparam, sys_sched_setparam), // 154
//zz=20
-//zz GENXY(__NR_sched_getparam, sys_sched_getparam), /=
/ 155
-//zz GENX_(__NR_sched_setscheduler, sys_sched_setscheduler), /=
/ 156
-//zz GENX_(__NR_sched_getscheduler, sys_sched_getscheduler), /=
/ 157
-//zz GENX_(__NR_sched_yield, sys_sched_yield), /=
/ 158
-//zz GENX_(__NR_sched_get_priority_max, sys_sched_get_priority_max),/=
/ 159
-//zz=20
-//zz GENX_(__NR_sched_get_priority_min, sys_sched_get_priority_min),/=
/ 160
+ GENXY(__NR_sched_getparam, sys_sched_getparam), // 155
+ GENX_(__NR_sched_setscheduler, sys_sched_setscheduler), // 156
+ GENX_(__NR_sched_getscheduler, sys_sched_getscheduler), // 157
+ GENX_(__NR_sched_yield, sys_sched_yield), // 158
+ GENX_(__NR_sched_get_priority_max, sys_sched_get_priority_max),// 159
+
+ GENX_(__NR_sched_get_priority_min, sys_sched_get_priority_min),// 160
//zz // (__NR_sched_rr_get_interval, sys_sched_rr_get_interval), /=
/ 161 */*
GENXY(__NR_nanosleep, sys_nanosleep), // 162
GENX_(__NR_mremap, sys_mremap), // 163
@@ -2157,21 +2157,21 @@
PLAXY(__NR_fstat64, sys_fstat64), // 197
//zz GENX_(__NR_lchown32, sys_lchown), // 198
GENX_(__NR_getuid32, sys_getuid), // 199
-//zz=20
-//zz GENX_(__NR_getgid32, sys_getgid), // 200
+
+ GENX_(__NR_getgid32, sys_getgid), // 200
GENX_(__NR_geteuid32, sys_geteuid), // 201
-//zz GENX_(__NR_getegid32, sys_getegid), // 202
+ GENX_(__NR_getegid32, sys_getegid), // 202
//zz GENX_(__NR_setreuid32, sys_setreuid), // 203
//zz GENX_(__NR_setregid32, sys_setregid), // 204
-//zz=20
-//zz GENXY(__NR_getgroups32, sys_getgroups), // 205
+
+ GENXY(__NR_getgroups32, sys_getgroups), // 205
//zz GENX_(__NR_setgroups32, sys_setgroups), // 206
//zz GENX_(__NR_fchown32, sys_fchown), // 207
//zz LINX_(__NR_setresuid32, sys_setresuid), // 208
-//zz LINXY(__NR_getresuid32, sys_getresuid), // 209
-//zz=20
+ LINXY(__NR_getresuid32, sys_getresuid), // 209
+
//zz LINX_(__NR_setresgid32, sys_setresgid), // 210
-//zz LINXY(__NR_getresgid32, sys_getresgid), // 211
+ LINXY(__NR_getresgid32, sys_getresgid), // 211
//zz GENX_(__NR_chown32, sys_chown), // 212
//zz GENX_(__NR_setuid32, sys_setuid), // 213
//zz GENX_(__NR_setgid32, sys_setgid), // 214
|
|
From: <sv...@va...> - 2005-06-08 01:01:53
|
Author: sewardj
Date: 2005-06-08 02:01:48 +0100 (Wed, 08 Jun 2005)
New Revision: 3851
Modified:
trunk/coregrind/m_syscalls/syscalls-generic.c
trunk/coregrind/m_syscalls/syscalls-linux.c
trunk/coregrind/m_syscalls/syscalls-x86-linux.c
Log:
Clean up after m_syscalls changes: fix more NPTL ish syscalls (x86)
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-generic.c 2005-06-08 00:02:49 UTC=
(rev 3850)
+++ trunk/coregrind/m_syscalls/syscalls-generic.c 2005-06-08 01:01:48 UTC=
(rev 3851)
@@ -2713,12 +2713,13 @@
}
}
=20
-//zz PRE(sys_ftruncate, SfMayBlock)
-//zz {
-//zz PRINT("sys_ftruncate ( %d, %lld )", ARG1,(ULong)ARG2);
-//zz PRE_REG_READ2(long, "ftruncate", unsigned int, fd, unsigned long=
, length);
-//zz }
-//zz=20
+PRE(sys_ftruncate)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_ftruncate ( %d, %lld )", ARG1,(ULong)ARG2);
+ PRE_REG_READ2(long, "ftruncate", unsigned int, fd, unsigned long, len=
gth);
+}
+
//zz PRE(sys_truncate, SfMayBlock)
//zz {
//zz PRINT("sys_truncate ( %p(%s), %d )", ARG1,ARG1,ARG2);
@@ -5360,42 +5361,43 @@
//zz {
//zz POST_MEM_WRITE( ARG1, sizeof(vki_sigset_t) ) ;
//zz }
-//zz=20
-//zz PRE(sys_mq_open, 0)
-//zz {
-//zz PRINT("sys_mq_open( %p(%s), %d, %lld, %p )",
-//zz ARG1,ARG1,ARG2,(ULong)ARG3,ARG4);
-//zz PRE_REG_READ4(long, "mq_open",
-//zz const char *, name, int, oflag, vki_mode_t, mode,
-//zz struct mq_attr *, attr);
-//zz PRE_MEM_RASCIIZ( "mq_open(name)", ARG1 );
-//zz if ((ARG2 & VKI_O_CREAT) !=3D 0 && ARG4 !=3D 0) {
-//zz const struct vki_mq_attr *attr =3D (struct vki_mq_attr *)ARG4=
;
-//zz PRE_MEM_READ( "mq_open(attr->mq_maxmsg)",
-//zz (Addr)&attr->mq_maxmsg, sizeof(attr->mq_maxmsg=
) );
-//zz PRE_MEM_READ( "mq_open(attr->mq_msgsize)",
-//zz (Addr)&attr->mq_msgsize, sizeof(attr->mq_msgsi=
ze) );
-//zz }
-//zz }
-//zz=20
-//zz POST(sys_mq_open)
-//zz {
-//zz if (!VG_(fd_allowed)(RES, "mq_open", tid, True)) {
-//zz VG_(close)(RES);
-//zz SET_STATUS_( -VKI_EMFILE );
-//zz } else {
-//zz if (VG_(clo_track_fds))
-//zz VG_(record_fd_open)(tid, RES, VG_(arena_strdup)(VG_AR_CORE=
, (Char*)ARG1));
-//zz }
-//zz }
-//zz=20
-//zz PRE(sys_mq_unlink, 0)
-//zz {
-//zz PRINT("sys_mq_unlink ( %p(%s) )", ARG1,ARG1);
-//zz PRE_REG_READ1(long, "mq_unlink", const char *, name);
-//zz PRE_MEM_RASCIIZ( "mq_unlink(name)", ARG1 );
-//zz }
-//zz=20
+
+PRE(sys_mq_open)
+{
+ PRINT("sys_mq_open( %p(%s), %d, %lld, %p )",
+ ARG1,ARG1,ARG2,(ULong)ARG3,ARG4);
+ PRE_REG_READ4(long, "mq_open",
+ const char *, name, int, oflag, vki_mode_t, mode,
+ struct mq_attr *, attr);
+ PRE_MEM_RASCIIZ( "mq_open(name)", ARG1 );
+ if ((ARG2 & VKI_O_CREAT) !=3D 0 && ARG4 !=3D 0) {
+ const struct vki_mq_attr *attr =3D (struct vki_mq_attr *)ARG4;
+ PRE_MEM_READ( "mq_open(attr->mq_maxmsg)",
+ (Addr)&attr->mq_maxmsg, sizeof(attr->mq_maxmsg) );
+ PRE_MEM_READ( "mq_open(attr->mq_msgsize)",
+ (Addr)&attr->mq_msgsize, sizeof(attr->mq_msgsize) )=
;
+ }
+}
+
+POST(sys_mq_open)
+{
+ vg_assert(SUCCESS);
+ if (!VG_(fd_allowed)(RES, "mq_open", tid, True)) {
+ VG_(close)(RES);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ if (VG_(clo_track_fds))
+ VG_(record_fd_open)(tid, RES, VG_(arena_strdup)(VG_AR_CORE, (Ch=
ar*)ARG1));
+ }
+}
+
+PRE(sys_mq_unlink)
+{
+ PRINT("sys_mq_unlink ( %p(%s) )", ARG1,ARG1);
+ PRE_REG_READ1(long, "mq_unlink", const char *, name);
+ PRE_MEM_RASCIIZ( "mq_unlink(name)", ARG1 );
+}
+
//zz PRE(sys_mq_timedsend, SfMayBlock)
//zz {
//zz PRINT("sys_mq_timedsend ( %d, %p, %llu, %d, %p )",
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-linux.c 2005-06-08 00:02:49 UTC (=
rev 3850)
+++ trunk/coregrind/m_syscalls/syscalls-linux.c 2005-06-08 01:01:48 UTC (=
rev 3851)
@@ -528,13 +528,13 @@
//zz if (RES > 0)
//zz POST_MEM_WRITE( ARG2, sizeof(struct epoll_event)*RES ) ;
//zz }
-//zz=20
-//zz PRE(sys_gettid, 0)
-//zz {
-//zz PRINT("sys_gettid ()");
-//zz PRE_REG_READ0(long, "gettid");
-//zz }
-//zz=20
+
+PRE(sys_gettid)
+{
+ PRINT("sys_gettid ()");
+ PRE_REG_READ0(long, "gettid");
+}
+
//zz PRE(sys_tkill, Special)
//zz {
//zz /* int tkill(pid_t tid, int sig); */
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-x86-linux.c 2005-06-08 00:02:49 U=
TC (rev 3850)
+++ trunk/coregrind/m_syscalls/syscalls-x86-linux.c 2005-06-08 01:01:48 U=
TC (rev 3851)
@@ -950,6 +950,7 @@
DECL_TEMPLATE(x86_linux, sys_rt_sigreturn);
DECL_TEMPLATE(x86_linux, sys_modify_ldt);
DECL_TEMPLATE(x86_linux, sys_set_thread_area);
+DECL_TEMPLATE(x86_linux, sys_ptrace);
=20
//zz PRE(old_select, MayBlock)
//zz {
@@ -1216,72 +1217,72 @@
//zz POST_MEM_WRITE( ARG1, sizeof(vki_modify_ldt_t) );
//zz }
//zz }
-//zz=20
-//zz // Parts of this are x86-specific, but the *PEEK* cases are generic=
.
-//zz // XXX: Why is the memory pointed to by ARG3 never checked?
-//zz PRE(sys_ptrace, 0)
-//zz {
-//zz PRINT("sys_ptrace ( %d, %d, %p, %p )", ARG1,ARG2,ARG3,ARG4);
-//zz PRE_REG_READ4(int, "ptrace",=20
-//zz long, request, long, pid, long, addr, long, data);
-//zz switch (ARG1) {
-//zz case VKI_PTRACE_PEEKTEXT:
-//zz case VKI_PTRACE_PEEKDATA:
-//zz case VKI_PTRACE_PEEKUSR:
-//zz PRE_MEM_WRITE( "ptrace(peek)", ARG4,=20
-//zz sizeof (long));
-//zz break;
-//zz case VKI_PTRACE_GETREGS:
-//zz PRE_MEM_WRITE( "ptrace(getregs)", ARG4,=20
-//zz sizeof (struct vki_user_regs_struct));
-//zz break;
-//zz case VKI_PTRACE_GETFPREGS:
-//zz PRE_MEM_WRITE( "ptrace(getfpregs)", ARG4,=20
-//zz sizeof (struct vki_user_i387_struct));
-//zz break;
-//zz case VKI_PTRACE_GETFPXREGS:
-//zz PRE_MEM_WRITE( "ptrace(getfpxregs)", ARG4,=20
-//zz sizeof(struct vki_user_fxsr_struct) );
-//zz break;
-//zz case VKI_PTRACE_SETREGS:
-//zz PRE_MEM_READ( "ptrace(setregs)", ARG4,=20
-//zz sizeof (struct vki_user_regs_struct));
-//zz break;
-//zz case VKI_PTRACE_SETFPREGS:
-//zz PRE_MEM_READ( "ptrace(setfpregs)", ARG4,=20
-//zz sizeof (struct vki_user_i387_struct));
-//zz break;
-//zz case VKI_PTRACE_SETFPXREGS:
-//zz PRE_MEM_READ( "ptrace(setfpxregs)", ARG4,=20
-//zz sizeof(struct vki_user_fxsr_struct) );
-//zz break;
-//zz default:
-//zz break;
-//zz }
-//zz }
-//zz=20
-//zz POST(sys_ptrace)
-//zz {
-//zz switch (ARG1) {
-//zz case VKI_PTRACE_PEEKTEXT:
-//zz case VKI_PTRACE_PEEKDATA:
-//zz case VKI_PTRACE_PEEKUSR:
-//zz POST_MEM_WRITE( ARG4, sizeof (long));
-//zz break;
-//zz case VKI_PTRACE_GETREGS:
-//zz POST_MEM_WRITE( ARG4, sizeof (struct vki_user_regs_struct));
-//zz break;
-//zz case VKI_PTRACE_GETFPREGS:
-//zz POST_MEM_WRITE( ARG4, sizeof (struct vki_user_i387_struct));
-//zz break;
-//zz case VKI_PTRACE_GETFPXREGS:
-//zz POST_MEM_WRITE( ARG4, sizeof(struct vki_user_fxsr_struct) );
-//zz break;
-//zz default:
-//zz break;
-//zz }
-//zz }
=20
+// Parts of this are x86-specific, but the *PEEK* cases are generic.
+// XXX: Why is the memory pointed to by ARG3 never checked?
+PRE(sys_ptrace)
+{
+ PRINT("sys_ptrace ( %d, %d, %p, %p )", ARG1,ARG2,ARG3,ARG4);
+ PRE_REG_READ4(int, "ptrace",=20
+ long, request, long, pid, long, addr, long, data);
+ switch (ARG1) {
+ case VKI_PTRACE_PEEKTEXT:
+ case VKI_PTRACE_PEEKDATA:
+ case VKI_PTRACE_PEEKUSR:
+ PRE_MEM_WRITE( "ptrace(peek)", ARG4,=20
+ sizeof (long));
+ break;
+ case VKI_PTRACE_GETREGS:
+ PRE_MEM_WRITE( "ptrace(getregs)", ARG4,=20
+ sizeof (struct vki_user_regs_struct));
+ break;
+ case VKI_PTRACE_GETFPREGS:
+ PRE_MEM_WRITE( "ptrace(getfpregs)", ARG4,=20
+ sizeof (struct vki_user_i387_struct));
+ break;
+ case VKI_PTRACE_GETFPXREGS:
+ PRE_MEM_WRITE( "ptrace(getfpxregs)", ARG4,=20
+ sizeof(struct vki_user_fxsr_struct) );
+ break;
+ case VKI_PTRACE_SETREGS:
+ PRE_MEM_READ( "ptrace(setregs)", ARG4,=20
+ sizeof (struct vki_user_regs_struct));
+ break;
+ case VKI_PTRACE_SETFPREGS:
+ PRE_MEM_READ( "ptrace(setfpregs)", ARG4,=20
+ sizeof (struct vki_user_i387_struct));
+ break;
+ case VKI_PTRACE_SETFPXREGS:
+ PRE_MEM_READ( "ptrace(setfpxregs)", ARG4,=20
+ sizeof(struct vki_user_fxsr_struct) );
+ break;
+ default:
+ break;
+ }
+}
+
+POST(sys_ptrace)
+{
+ switch (ARG1) {
+ case VKI_PTRACE_PEEKTEXT:
+ case VKI_PTRACE_PEEKDATA:
+ case VKI_PTRACE_PEEKUSR:
+ POST_MEM_WRITE( ARG4, sizeof (long));
+ break;
+ case VKI_PTRACE_GETREGS:
+ POST_MEM_WRITE( ARG4, sizeof (struct vki_user_regs_struct));
+ break;
+ case VKI_PTRACE_GETFPREGS:
+ POST_MEM_WRITE( ARG4, sizeof (struct vki_user_i387_struct));
+ break;
+ case VKI_PTRACE_GETFPXREGS:
+ POST_MEM_WRITE( ARG4, sizeof(struct vki_user_fxsr_struct) );
+ break;
+ default:
+ break;
+ }
+}
+
// XXX: this duplicates a function in coregrind/vg_syscalls.c, yuk
static Addr deref_Addr ( ThreadId tid, Addr a, Char* s )
{
@@ -1945,7 +1946,7 @@
GENX_(__NR_getuid, sys_getuid16), // 24 ## P
//zz=20
//zz // (__NR_stime, sys_stime), // 25 * (SVr4=
,SVID,X/OPEN)
-//zz PLAXY(__NR_ptrace, sys_ptrace), // 26
+ PLAXY(__NR_ptrace, sys_ptrace), // 26
GENX_(__NR_alarm, sys_alarm), // 27
//zz // (__NR_oldfstat, sys_fstat), // 28 * L -- =
obsolete
GENX_(__NR_pause, sys_pause), // 29
@@ -2025,7 +2026,7 @@
PLAX_(__NR_mmap, old_mmap), // 90
GENXY(__NR_munmap, sys_munmap), // 91
//zz GENX_(__NR_truncate, sys_truncate), // 92
-//zz GENX_(__NR_ftruncate, sys_ftruncate), // 93
+ GENX_(__NR_ftruncate, sys_ftruncate), // 93
//zz GENX_(__NR_fchmod, sys_fchmod), // 94
//zz=20
//zz GENX_(__NR_fchown, sys_fchown16), // 95
@@ -2185,8 +2186,8 @@
GENXY(__NR_fcntl64, sys_fcntl64), // 221
GENX_(222, sys_ni_syscall), // 222
GENX_(223, sys_ni_syscall), // 223
-//zz LINX_(__NR_gettid, sys_gettid), // 224
-//zz=20
+ LINX_(__NR_gettid, sys_gettid), // 224
+
//zz // (__NR_readahead, sys_readahead), // 225 */(Lin=
ux?)
//zz GENX_(__NR_setxattr, sys_setxattr), // 226
//zz GENX_(__NR_lsetxattr, sys_lsetxattr), // 227
@@ -2249,8 +2250,8 @@
//zz=20
//zz // (__NR_get_mempolicy, sys_get_mempolicy), // 275 ?/?
//zz // (__NR_set_mempolicy, sys_set_mempolicy), // 276 ?/?
-//zz GENXY(__NR_mq_open, sys_mq_open), // 277
-//zz GENX_(__NR_mq_unlink, sys_mq_unlink), // (mq_open+1=
)
+ GENXY(__NR_mq_open, sys_mq_open), // 277
+ GENX_(__NR_mq_unlink, sys_mq_unlink), // (mq_open+1)
//zz GENX_(__NR_mq_timedsend, sys_mq_timedsend), // (mq_open+2=
)
//zz=20
//zz GENXY(__NR_mq_timedreceive, sys_mq_timedreceive),// (mq_open+3=
)
|
|
From: <sv...@va...> - 2005-06-08 00:03:02
|
Author: sewardj
Date: 2005-06-08 01:02:49 +0100 (Wed, 08 Jun 2005)
New Revision: 3850
Modified:
trunk/coregrind/m_syscalls/priv_syscalls-generic.h
trunk/coregrind/m_syscalls/priv_syscalls-linux.h
trunk/coregrind/m_syscalls/syscalls-generic.c
trunk/coregrind/m_syscalls/syscalls-linux.c
trunk/coregrind/m_syscalls/syscalls-x86-linux.c
Log:
Cleanup after m_syscalls changes: fix some NPTL ish syscalls (x86)
Modified: trunk/coregrind/m_syscalls/priv_syscalls-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_syscalls/priv_syscalls-generic.h 2005-06-07 20:04:5=
6 UTC (rev 3849)
+++ trunk/coregrind/m_syscalls/priv_syscalls-generic.h 2005-06-08 00:02:4=
9 UTC (rev 3850)
@@ -58,206 +58,204 @@
UInt mm_flags, Int fd, ULong offset );
=20
=20
-DECL_TEMPLATE(generic,sys_ni_syscall); // * P -- unimplemente=
d
-DECL_TEMPLATE(generic,sys_exit);
-DECL_TEMPLATE(generic,sys_fork);
-DECL_TEMPLATE(generic,sys_read);
-DECL_TEMPLATE(generic,sys_write);
-DECL_TEMPLATE(generic,sys_open);
-DECL_TEMPLATE(generic,sys_close);
-DECL_TEMPLATE(generic,sys_waitpid);
-DECL_TEMPLATE(generic,sys_creat);
-DECL_TEMPLATE(generic,sys_link);
-DECL_TEMPLATE(generic,sys_unlink);
-DECL_TEMPLATE(generic,sys_execve); // (*??) P
-DECL_TEMPLATE(generic,sys_chdir);
-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);
-DECL_TEMPLATE(generic,sys_mkdir);
-DECL_TEMPLATE(generic,sys_rmdir);
-DECL_TEMPLATE(generic,sys_dup);
-DECL_TEMPLATE(generic,sys_times);
-DECL_TEMPLATE(generic,sys_fcntl); // POSIX (but complicated)
-DECL_TEMPLATE(generic,sys_setpgid);
-DECL_TEMPLATE(generic,sys_umask);
-DECL_TEMPLATE(generic,sys_dup2);
-DECL_TEMPLATE(generic,sys_getppid);
-DECL_TEMPLATE(generic,sys_getpgrp);
-DECL_TEMPLATE(generic,sys_setsid);
-DECL_TEMPLATE(generic,sys_munmap);
-DECL_TEMPLATE(generic,sys_truncate);
-DECL_TEMPLATE(generic,sys_ftruncate);
-DECL_TEMPLATE(generic,sys_fchmod);
-DECL_TEMPLATE(generic,sys_msync);
-DECL_TEMPLATE(generic,sys_readv);
-DECL_TEMPLATE(generic,sys_writev);
-DECL_TEMPLATE(generic,sys_getsid);
-DECL_TEMPLATE(generic,sys_fdatasync);
-DECL_TEMPLATE(generic,sys_mlock);
-DECL_TEMPLATE(generic,sys_munlock);
-DECL_TEMPLATE(generic,sys_mlockall);
-DECL_TEMPLATE(generic,sys_munlockall);
-DECL_TEMPLATE(generic,sys_sched_setparam);
-DECL_TEMPLATE(generic,sys_sched_getparam);
-DECL_TEMPLATE(generic,sys_sched_rr_get_interval);
-DECL_TEMPLATE(generic,sys_sched_setscheduler);
-DECL_TEMPLATE(generic,sys_sched_getscheduler);
-DECL_TEMPLATE(generic,sys_sched_yield);
-DECL_TEMPLATE(generic,sys_sched_get_priority_max);
-DECL_TEMPLATE(generic,sys_sched_get_priority_min);
-DECL_TEMPLATE(generic,sys_nanosleep);
-DECL_TEMPLATE(generic,sys_mremap); // POSIX, but Linux arg order may =
be odd
-DECL_TEMPLATE(generic,sys_getuid);
-DECL_TEMPLATE(generic,sys_getgid);
-DECL_TEMPLATE(generic,sys_geteuid);
-DECL_TEMPLATE(generic,sys_getegid);
-DECL_TEMPLATE(generic,sys_getpgid);
-DECL_TEMPLATE(generic,sys_fsync);
-DECL_TEMPLATE(generic,sys_wait4);
-DECL_TEMPLATE(generic,sys_mprotect);
-DECL_TEMPLATE(generic,sys_sigprocmask);
-DECL_TEMPLATE(generic,sys_timer_create); // Linux: varies across arch=
s?
-DECL_TEMPLATE(generic,sys_timer_settime);
-DECL_TEMPLATE(generic,sys_timer_gettime);
-DECL_TEMPLATE(generic,sys_timer_getoverrun);
-DECL_TEMPLATE(generic,sys_timer_delete);
-DECL_TEMPLATE(generic,sys_clock_settime);
-DECL_TEMPLATE(generic,sys_clock_gettime);
-DECL_TEMPLATE(generic,sys_clock_getres);
-DECL_TEMPLATE(generic,sys_clock_nanosleep);
-DECL_TEMPLATE(generic,sys_getcwd);
-DECL_TEMPLATE(generic,sys_symlink);
-DECL_TEMPLATE(generic,sys_getgroups);
-DECL_TEMPLATE(generic,sys_setgroups); // SVr4, SVID, X/OPEN,=
4.3BSD
-DECL_TEMPLATE(generic,sys_chown);
-DECL_TEMPLATE(generic,sys_setuid);
-DECL_TEMPLATE(generic,sys_gettimeofday);
-DECL_TEMPLATE(generic,sys_madvise);
-DECL_TEMPLATE(generic,sys_sigpending);
+DECL_TEMPLATE(generic, sys_ni_syscall); // * P -- unimplement=
ed
+DECL_TEMPLATE(generic, sys_exit);
+DECL_TEMPLATE(generic, sys_fork);
+DECL_TEMPLATE(generic, sys_read);
+DECL_TEMPLATE(generic, sys_write);
+DECL_TEMPLATE(generic, sys_open);
+DECL_TEMPLATE(generic, sys_close);
+DECL_TEMPLATE(generic, sys_waitpid);
+DECL_TEMPLATE(generic, sys_creat);
+DECL_TEMPLATE(generic, sys_link);
+DECL_TEMPLATE(generic, sys_unlink);
+DECL_TEMPLATE(generic, sys_execve); // (*??) P
+DECL_TEMPLATE(generic, sys_chdir);
+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);
+DECL_TEMPLATE(generic, sys_mkdir);
+DECL_TEMPLATE(generic, sys_rmdir);
+DECL_TEMPLATE(generic, sys_dup);
+DECL_TEMPLATE(generic, sys_times);
+DECL_TEMPLATE(generic, sys_fcntl); // POSIX (but complicated)
+DECL_TEMPLATE(generic, sys_setpgid);
+DECL_TEMPLATE(generic, sys_umask);
+DECL_TEMPLATE(generic, sys_dup2);
+DECL_TEMPLATE(generic, sys_getppid);
+DECL_TEMPLATE(generic, sys_getpgrp);
+DECL_TEMPLATE(generic, sys_setsid);
+DECL_TEMPLATE(generic, sys_munmap);
+DECL_TEMPLATE(generic, sys_truncate);
+DECL_TEMPLATE(generic, sys_ftruncate);
+DECL_TEMPLATE(generic, sys_fchmod);
+DECL_TEMPLATE(generic, sys_msync);
+DECL_TEMPLATE(generic, sys_readv);
+DECL_TEMPLATE(generic, sys_writev);
+DECL_TEMPLATE(generic, sys_getsid);
+DECL_TEMPLATE(generic, sys_fdatasync);
+DECL_TEMPLATE(generic, sys_mlock);
+DECL_TEMPLATE(generic, sys_munlock);
+DECL_TEMPLATE(generic, sys_mlockall);
+DECL_TEMPLATE(generic, sys_munlockall);
+DECL_TEMPLATE(generic, sys_sched_setparam);
+DECL_TEMPLATE(generic, sys_sched_getparam);
+DECL_TEMPLATE(generic, sys_sched_rr_get_interval);
+DECL_TEMPLATE(generic, sys_sched_setscheduler);
+DECL_TEMPLATE(generic, sys_sched_getscheduler);
+DECL_TEMPLATE(generic, sys_sched_yield);
+DECL_TEMPLATE(generic, sys_sched_get_priority_max);
+DECL_TEMPLATE(generic, sys_sched_get_priority_min);
+DECL_TEMPLATE(generic, sys_nanosleep);
+DECL_TEMPLATE(generic, sys_mremap); // POSIX, but Linux arg order may=
be odd
+DECL_TEMPLATE(generic, sys_getuid);
+DECL_TEMPLATE(generic, sys_getgid);
+DECL_TEMPLATE(generic, sys_geteuid);
+DECL_TEMPLATE(generic, sys_getegid);
+DECL_TEMPLATE(generic, sys_getpgid);
+DECL_TEMPLATE(generic, sys_fsync);
+DECL_TEMPLATE(generic, sys_wait4);
+DECL_TEMPLATE(generic, sys_mprotect);
+DECL_TEMPLATE(generic, sys_sigprocmask);
+DECL_TEMPLATE(generic, sys_timer_create); // Linux: varies across arc=
hs?
+DECL_TEMPLATE(generic, sys_timer_settime);
+DECL_TEMPLATE(generic, sys_timer_gettime);
+DECL_TEMPLATE(generic, sys_timer_getoverrun);
+DECL_TEMPLATE(generic, sys_timer_delete);
+DECL_TEMPLATE(generic, sys_clock_settime);
+DECL_TEMPLATE(generic, sys_clock_gettime);
+DECL_TEMPLATE(generic, sys_clock_getres);
+DECL_TEMPLATE(generic, sys_clock_nanosleep);
+DECL_TEMPLATE(generic, sys_getcwd);
+DECL_TEMPLATE(generic, sys_symlink);
+DECL_TEMPLATE(generic, sys_getgroups);
+DECL_TEMPLATE(generic, sys_setgroups); // SVr4, SVID, X/OPEN=
, 4.3BSD
+DECL_TEMPLATE(generic, sys_chown);
+DECL_TEMPLATE(generic, sys_setuid);
+DECL_TEMPLATE(generic, sys_gettimeofday);
+DECL_TEMPLATE(generic, sys_madvise);
+DECL_TEMPLATE(generic, sys_sigpending);
=20
// These ones aren't POSIX, but are in some standard and look reasonably
-// generic, and are the same for all architectures under Linux.
-DECL_TEMPLATE(generic,sys_nice); // SVr4, SVID EXT, AT&T, X/OPEN, B=
SD 4.3
-DECL_TEMPLATE(generic,sys_sync); // SVr4, SVID, X/OPEN, BSD 4.3
-DECL_TEMPLATE(generic,sys_brk); // 4.3BSD
-DECL_TEMPLATE(generic,sys_acct); // SVR4, non-POSIX
-DECL_TEMPLATE(generic,sys_chroot); // SVr4, SVID, 4.4BSD, X/OPEN
-DECL_TEMPLATE(generic,sys_readlink); // X/OPEN, 4.4BSD
-DECL_TEMPLATE(generic,sys_fchdir); // SVr4, SVID, POSIX, X/OPEN, 4.4B=
SD
-DECL_TEMPLATE(generic,sys_getdents); // SVr4,SVID
-DECL_TEMPLATE(generic,sys_select); // 4.4BSD
-DECL_TEMPLATE(generic,sys_flock); // 4.4BSD
-DECL_TEMPLATE(generic,sys_poll); // XPG4-UNIX
-DECL_TEMPLATE(generic,sys_getrusage); // SVr4, 4.3BSD
-DECL_TEMPLATE(generic,sys_stime); // SVr4, SVID, X/OPEN
-DECL_TEMPLATE(generic,sys_settimeofday); // SVr4, 4.3BSD (non-POSIX)
-DECL_TEMPLATE(generic,sys_getpriority); // SVr4, 4.4BSD
-DECL_TEMPLATE(generic,sys_setpriority); // SVr4, 4.4BSD
-DECL_TEMPLATE(generic,sys_setitimer); // SVr4, 4.4BSD
-DECL_TEMPLATE(generic,sys_getitimer); // SVr4, 4.4BSD
-DECL_TEMPLATE(generic,sys_setreuid); // 4.3BSD
-DECL_TEMPLATE(generic,sys_setregid); // 4.3BSD
-DECL_TEMPLATE(generic,sys_fchown); // SVr4,4.3BSD
-DECL_TEMPLATE(generic,sys_setgid); // SVr4,SVID
-DECL_TEMPLATE(generic,sys_utimes); // 4.3BSD
+// generic, and are the same for all architectures under Linux.
+DECL_TEMPLATE(generic, sys_nice); // SVr4, SVID EXT, AT&T, X/OPEN, =
BSD 4.3
+DECL_TEMPLATE(generic, sys_sync); // SVr4, SVID, X/OPEN, BSD 4.3
+DECL_TEMPLATE(generic, sys_brk); // 4.3BSD
+DECL_TEMPLATE(generic, sys_acct); // SVR4, non-POSIX
+DECL_TEMPLATE(generic, sys_chroot); // SVr4, SVID, 4.4BSD, X/OPEN
+DECL_TEMPLATE(generic, sys_readlink); // X/OPEN, 4.4BSD
+DECL_TEMPLATE(generic, sys_fchdir); // SVr4, SVID, POSIX, X/OPEN, 4.4=
BSD
+DECL_TEMPLATE(generic, sys_getdents); // SVr4,SVID
+DECL_TEMPLATE(generic, sys_select); // 4.4BSD
+DECL_TEMPLATE(generic, sys_flock); // 4.4BSD
+DECL_TEMPLATE(generic, sys_poll); // XPG4-UNIX
+DECL_TEMPLATE(generic, sys_getrusage); // SVr4, 4.3BSD
+DECL_TEMPLATE(generic, sys_stime); // SVr4, SVID, X/OPEN
+DECL_TEMPLATE(generic, sys_settimeofday); // SVr4, 4.3BSD (non-POSIX)
+DECL_TEMPLATE(generic, sys_getpriority); // SVr4, 4.4BSD
+DECL_TEMPLATE(generic, sys_setpriority); // SVr4, 4.4BSD
+DECL_TEMPLATE(generic, sys_setitimer); // SVr4, 4.4BSD
+DECL_TEMPLATE(generic, sys_getitimer); // SVr4, 4.4BSD
+DECL_TEMPLATE(generic, sys_setreuid); // 4.3BSD
+DECL_TEMPLATE(generic, sys_setregid); // 4.3BSD
+DECL_TEMPLATE(generic, sys_fchown); // SVr4,4.3BSD
+DECL_TEMPLATE(generic, sys_setgid); // SVr4,SVID
+DECL_TEMPLATE(generic, sys_utimes); // 4.3BSD
=20
// These ones may be Linux specific... not sure. They use 16-bit gid_t =
and
// uid_t types. The similarly named (minus the "16" suffix) ones below =
use
// 32-bit versions of these types.
-DECL_TEMPLATE(generic,sys_setuid16); // ## P
-DECL_TEMPLATE(generic,sys_getuid16); // ## P
-DECL_TEMPLATE(generic,sys_setgid16); // ## SVr4,SVID
-DECL_TEMPLATE(generic,sys_getgid16); // ## P
-DECL_TEMPLATE(generic,sys_geteuid16); // ## P
-DECL_TEMPLATE(generic,sys_getegid16); // ## P
-DECL_TEMPLATE(generic,sys_setreuid16); // ## BSD4.3
-DECL_TEMPLATE(generic,sys_setregid16); // ## BSD4.3
-DECL_TEMPLATE(generic,sys_getgroups16); // ## P
-DECL_TEMPLATE(generic,sys_setgroups16); // ## SVr4, SVID, X/OP=
EN, 4.3BSD
-DECL_TEMPLATE(generic,sys_fchown16); // ## SVr4,BSD4.3
-DECL_TEMPLATE(generic,sys_chown16); // ## P
+DECL_TEMPLATE(generic, sys_setuid16); // ## P
+DECL_TEMPLATE(generic, sys_getuid16); // ## P
+DECL_TEMPLATE(generic, sys_setgid16); // ## SVr4,SVID
+DECL_TEMPLATE(generic, sys_getgid16); // ## P
+DECL_TEMPLATE(generic, sys_geteuid16); // ## P
+DECL_TEMPLATE(generic, sys_getegid16); // ## P
+DECL_TEMPLATE(generic, sys_setreuid16); // ## BSD4.3
+DECL_TEMPLATE(generic, sys_setregid16); // ## BSD4.3
+DECL_TEMPLATE(generic, sys_getgroups16); // ## P
+DECL_TEMPLATE(generic, sys_setgroups16); // ## SVr4, SVID, X/O=
PEN, 4.3BSD
+DECL_TEMPLATE(generic, sys_fchown16); // ## SVr4,BSD4.3
+DECL_TEMPLATE(generic, sys_chown16); // ## P
=20
// Some archs on Linux do not match the generic wrapper for sys_pipe().
-DECL_TEMPLATE(generic,sys_pipe);
+DECL_TEMPLATE(generic, sys_pipe);
=20
// May not be generic for every architecture under Linux.
-DECL_TEMPLATE(generic,sys_sigaction); // (x86) P
+DECL_TEMPLATE(generic, sys_sigaction); // (x86) P
=20
// Funny names, not sure...
-DECL_TEMPLATE(generic,sys_newstat); // * P
-DECL_TEMPLATE(generic,sys_newlstat); // *
-DECL_TEMPLATE(generic,sys_newfstat); // * P (SVr4,BSD4.3)
+DECL_TEMPLATE(generic, sys_newstat); // * P
+DECL_TEMPLATE(generic, sys_newlstat); // *
+DECL_TEMPLATE(generic, sys_newfstat); // * P (SVr4,BSD4.3)
=20
// For the remainder, not really sure yet
-DECL_TEMPLATE(generic,sys_ptrace); // (x86?) (almost-P)
-DECL_TEMPLATE(generic,sys_sigsuspend); // POSIX, but L (proto=
varies across archs)
-DECL_TEMPLATE(generic,sys_setrlimit); // SVr4, 4.3BSD
-DECL_TEMPLATE(generic,sys_ioctl); // x86? (various)
-DECL_TEMPLATE(generic,sys_old_getrlimit); // SVr4, 4.3BSD L?
-DECL_TEMPLATE(generic,sys_statfs); // * L?
-DECL_TEMPLATE(generic,sys_fstatfs); // * L?
-DECL_TEMPLATE(generic,sys_iopl); // (x86/amd64) L
-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_capget); // * L?
-DECL_TEMPLATE(generic,sys_capset); // * L?
-DECL_TEMPLATE(generic,sys_sigaltstack); // (x86) (XPG4-UNIX)
-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?)
-DECL_TEMPLATE(generic,sys_mincore); // * L?
-DECL_TEMPLATE(generic,sys_getdents64); // * (SVr4,SVID?)
-DECL_TEMPLATE(generic,sys_fcntl64); // * P?
-DECL_TEMPLATE(generic,sys_setxattr); // * L?
-DECL_TEMPLATE(generic,sys_lsetxattr); // * L?
-DECL_TEMPLATE(generic,sys_fsetxattr); // * L?
-DECL_TEMPLATE(generic,sys_getxattr); // * L?
-DECL_TEMPLATE(generic,sys_lgetxattr); // * L?
-DECL_TEMPLATE(generic,sys_fgetxattr); // * L?
-DECL_TEMPLATE(generic,sys_listxattr); // * L?
-DECL_TEMPLATE(generic,sys_llistxattr); // * L?
-DECL_TEMPLATE(generic,sys_flistxattr); // * L?
-DECL_TEMPLATE(generic,sys_removexattr); // * L?
-DECL_TEMPLATE(generic,sys_lremovexattr); // * L?
-DECL_TEMPLATE(generic,sys_fremovexattr); // * L?
-DECL_TEMPLATE(generic,sys_sched_setaffinity); // * L?
-DECL_TEMPLATE(generic,sys_sched_getaffinity); // * L?
-DECL_TEMPLATE(generic,sys_lookup_dcookie); // (*/32/64) L
-DECL_TEMPLATE(generic,sys_set_tid_address); // * ?
-DECL_TEMPLATE(generic,sys_statfs64); // * (?)
-DECL_TEMPLATE(generic,sys_fstatfs64); // * (?)
-DECL_TEMPLATE(generic,sys_mq_open); // * P?
-DECL_TEMPLATE(generic,sys_mq_unlink); // * P?
-DECL_TEMPLATE(generic,sys_mq_timedsend); // * P?
-DECL_TEMPLATE(generic,sys_mq_timedreceive); // * P?
-DECL_TEMPLATE(generic,sys_mq_notify); // * P?
-DECL_TEMPLATE(generic,sys_mq_getsetattr); // * P?
+DECL_TEMPLATE(generic, sys_ptrace); // (x86?) (almost-P)
+DECL_TEMPLATE(generic, sys_sigsuspend); // POSIX, but L (prot=
o varies across archs)
+DECL_TEMPLATE(generic, sys_setrlimit); // SVr4, 4.3BSD
+DECL_TEMPLATE(generic, sys_ioctl); // x86? (various)
+DECL_TEMPLATE(generic, sys_old_getrlimit); // SVr4, 4.3BSD L?
+DECL_TEMPLATE(generic, sys_statfs); // * L?
+DECL_TEMPLATE(generic, sys_fstatfs); // * L?
+DECL_TEMPLATE(generic, sys_iopl); // (x86/amd64) L
+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_capget); // * L?
+DECL_TEMPLATE(generic, sys_capset); // * L?
+DECL_TEMPLATE(generic, sys_sigaltstack); // (x86) (XPG4-UNIX)
+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?)
+DECL_TEMPLATE(generic, sys_mincore); // * L?
+DECL_TEMPLATE(generic, sys_getdents64); // * (SVr4,SVID?)
+DECL_TEMPLATE(generic, sys_fcntl64); // * P?
+DECL_TEMPLATE(generic, sys_setxattr); // * L?
+DECL_TEMPLATE(generic, sys_lsetxattr); // * L?
+DECL_TEMPLATE(generic, sys_fsetxattr); // * L?
+DECL_TEMPLATE(generic, sys_getxattr); // * L?
+DECL_TEMPLATE(generic, sys_lgetxattr); // * L?
+DECL_TEMPLATE(generic, sys_fgetxattr); // * L?
+DECL_TEMPLATE(generic, sys_listxattr); // * L?
+DECL_TEMPLATE(generic, sys_llistxattr); // * L?
+DECL_TEMPLATE(generic, sys_flistxattr); // * L?
+DECL_TEMPLATE(generic, sys_removexattr); // * L?
+DECL_TEMPLATE(generic, sys_lremovexattr); // * L?
+DECL_TEMPLATE(generic, sys_fremovexattr); // * L?
+DECL_TEMPLATE(generic, sys_sched_setaffinity); // * L?
+DECL_TEMPLATE(generic, sys_sched_getaffinity); // * L?
+DECL_TEMPLATE(generic, sys_lookup_dcookie); // (*/32/64) L
+DECL_TEMPLATE(generic, sys_statfs64); // * (?)
+DECL_TEMPLATE(generic, sys_fstatfs64); // * (?)
+DECL_TEMPLATE(generic, sys_mq_open); // * P?
+DECL_TEMPLATE(generic, sys_mq_unlink); // * P?
+DECL_TEMPLATE(generic, sys_mq_timedsend); // * P?
+DECL_TEMPLATE(generic, sys_mq_timedreceive); // * P?
+DECL_TEMPLATE(generic, sys_mq_notify); // * P?
+DECL_TEMPLATE(generic, sys_mq_getsetattr); // * P?
=20
=20
-
/* ---------------------------------------------------------------------
Wrappers for sockets and ipc-ery. These are split into standalone
procedures because x86-linux hides them inside multiplexors
Modified: trunk/coregrind/m_syscalls/priv_syscalls-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_syscalls/priv_syscalls-linux.h 2005-06-07 20:04:56 =
UTC (rev 3849)
+++ trunk/coregrind/m_syscalls/priv_syscalls-linux.h 2005-06-08 00:02:49 =
UTC (rev 3850)
@@ -33,59 +33,59 @@
=20
/* requires #include "priv_types_n_macros.h" */
=20
+DECL_TEMPLATE(linux, sys_exit_group);
=20
-DECL_TEMPLATE(linux,sys_exit_group);
+DECL_TEMPLATE(linux, sys_mount);
+DECL_TEMPLATE(linux, sys_oldumount);
+DECL_TEMPLATE(linux, sys_umount);
=20
-DECL_TEMPLATE(linux,sys_mount);
-DECL_TEMPLATE(linux,sys_oldumount);
-DECL_TEMPLATE(linux,sys_umount);
+DECL_TEMPLATE(linux, sys_llseek);
+DECL_TEMPLATE(linux, sys_adjtimex);
=20
-DECL_TEMPLATE(linux,sys_llseek);
-DECL_TEMPLATE(linux,sys_adjtimex);
+DECL_TEMPLATE(linux, sys_setfsuid16);
+DECL_TEMPLATE(linux, sys_setfsgid16);
+DECL_TEMPLATE(linux, sys_setresuid16); // man page says "non-standard";
+DECL_TEMPLATE(linux, sys_getresuid16);
+DECL_TEMPLATE(linux, sys_setresgid16); // man page says "non-standard"
+DECL_TEMPLATE(linux, sys_getresgid16);
=20
-DECL_TEMPLATE(linux,sys_setfsuid16);
-DECL_TEMPLATE(linux,sys_setfsgid16);
-DECL_TEMPLATE(linux,sys_setresuid16); // man page says "non-standard";
-DECL_TEMPLATE(linux,sys_getresuid16);
-DECL_TEMPLATE(linux,sys_setresgid16); // man page says "non-standard"
-DECL_TEMPLATE(linux,sys_getresgid16);
+DECL_TEMPLATE(linux, sys_setfsuid);
+DECL_TEMPLATE(linux, sys_setfsgid);
+DECL_TEMPLATE(linux, sys_setresuid); // man page says "non-standard"
+DECL_TEMPLATE(linux, sys_getresuid);
+DECL_TEMPLATE(linux, sys_setresgid); // man page says "non-standard"
+DECL_TEMPLATE(linux, sys_getresgid);
=20
-DECL_TEMPLATE(linux,sys_setfsuid);
-DECL_TEMPLATE(linux,sys_setfsgid);
-DECL_TEMPLATE(linux,sys_setresuid); // man page says "non-standard"
-DECL_TEMPLATE(linux,sys_getresuid);
-DECL_TEMPLATE(linux,sys_setresgid); // man page says "non-standard"
-DECL_TEMPLATE(linux,sys_getresgid);
+DECL_TEMPLATE(linux, sys_ioperm);
+DECL_TEMPLATE(linux, sys_syslog);
+DECL_TEMPLATE(linux, sys_vhangup);
+DECL_TEMPLATE(linux, sys_sysinfo);
+DECL_TEMPLATE(linux, sys_personality);
+DECL_TEMPLATE(linux, sys_sysctl);
+DECL_TEMPLATE(linux, sys_prctl);
=20
-DECL_TEMPLATE(linux,sys_ioperm);
-DECL_TEMPLATE(linux,sys_syslog);
-DECL_TEMPLATE(linux,sys_vhangup);
-DECL_TEMPLATE(linux,sys_sysinfo);
-DECL_TEMPLATE(linux,sys_personality);
-DECL_TEMPLATE(linux,sys_sysctl);
-DECL_TEMPLATE(linux,sys_prctl);
+DECL_TEMPLATE(linux, sys_sendfile);
+DECL_TEMPLATE(linux, sys_sendfile64);
+DECL_TEMPLATE(linux, sys_futex);
=20
-DECL_TEMPLATE(linux,sys_sendfile);
-DECL_TEMPLATE(linux,sys_sendfile64);
-DECL_TEMPLATE(linux,sys_futex);
+DECL_TEMPLATE(linux, sys_epoll_create);
+DECL_TEMPLATE(linux, sys_epoll_ctl);
+DECL_TEMPLATE(linux, sys_epoll_wait);
=20
-DECL_TEMPLATE(linux,sys_epoll_create);
-DECL_TEMPLATE(linux,sys_epoll_ctl);
-DECL_TEMPLATE(linux,sys_epoll_wait);
+DECL_TEMPLATE(linux, sys_gettid);
+DECL_TEMPLATE(linux, sys_set_tid_address);
+DECL_TEMPLATE(linux, sys_tkill);
+DECL_TEMPLATE(linux, sys_tgkill);
=20
-DECL_TEMPLATE(linux,sys_gettid);
-DECL_TEMPLATE(linux,sys_tkill);
-DECL_TEMPLATE(linux,sys_tgkill);
+DECL_TEMPLATE(linux, sys_fadvise64);
+DECL_TEMPLATE(linux, sys_fadvise64_64);
=20
-DECL_TEMPLATE(linux,sys_fadvise64);
-DECL_TEMPLATE(linux,sys_fadvise64_64);
+DECL_TEMPLATE(linux, sys_io_setup);
+DECL_TEMPLATE(linux, sys_io_destroy);
+DECL_TEMPLATE(linux, sys_io_getevents);
+DECL_TEMPLATE(linux, sys_io_submit);
+DECL_TEMPLATE(linux, sys_io_cancel);
=20
-DECL_TEMPLATE(linux,sys_io_setup);
-DECL_TEMPLATE(linux,sys_io_destroy);
-DECL_TEMPLATE(linux,sys_io_getevents);
-DECL_TEMPLATE(linux,sys_io_submit);
-DECL_TEMPLATE(linux,sys_io_cancel);
-
#endif // __PRIV_SYSCALLS_LINUX_H
=20
/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-generic.c 2005-06-07 20:04:56 UTC=
(rev 3849)
+++ trunk/coregrind/m_syscalls/syscalls-generic.c 2005-06-08 00:02:49 UTC=
(rev 3850)
@@ -1683,12 +1683,6 @@
SET_STATUS_Failure( VKI_ENOSYS );
}
=20
-//zz PRE(sys_set_tid_address, 0)
-//zz {
-//zz PRINT("sys_set_tid_address ( %p )", ARG1);
-//zz PRE_REG_READ1(long, "set_tid_address", int *, tidptr);
-//zz }
-//zz=20
//zz PRE(sys_iopl, 0)
//zz {
//zz PRINT("sys_iopl ( %d )", ARG1);
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-linux.c 2005-06-07 20:04:56 UTC (=
rev 3849)
+++ trunk/coregrind/m_syscalls/syscalls-linux.c 2005-06-08 00:02:49 UTC (=
rev 3850)
@@ -30,16 +30,18 @@
=20
#include "core.h"
#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"
#include "pub_core_tooliface.h"
#include "pub_core_options.h"
+#include "pub_core_signals.h"
=20
#include "priv_types_n_macros.h"
+#include "priv_syscalls-generic.h"
#include "priv_syscalls-linux.h"
=20
-
/* ---------------------------------------------------------------------
PRE/POST wrappers for arch-generic, Linux-specific syscalls
------------------------------------------------------------------ */
@@ -50,6 +52,12 @@
#define PRE(name) DEFN_PRE_TEMPLATE(linux, name)
#define POST(name) DEFN_POST_TEMPLATE(linux, name)
=20
+PRE(sys_set_tid_address)
+{
+ PRINT("sys_set_tid_address ( %p )", ARG1);
+ PRE_REG_READ1(long, "set_tid_address", int *, tidptr);
+}
+
PRE(sys_exit_group)
{
ThreadId t;
@@ -416,62 +424,65 @@
//zz POST_MEM_WRITE( ARG3, sizeof(vki_loff_t) );
//zz }
//zz }
-//zz=20
-//zz PRE(sys_futex, MayBlock)
-//zz {
-//zz /*=20
-//zz arg param used by ops
-//zz=20
-//zz ARG1 - u32 *futex all
-//zz ARG2 - int op
-//zz ARG3 - int val WAIT,WAKE,FD,REQUEUE,CMP_REQUEUE
-//zz ARG4 - struct timespec *utime WAIT:time* REQUEUE,CMP_REQUEUE=
:val2
-//zz ARG5 - u32 *uaddr2 REQUEUE,CMP_REQUEUE
-//zz ARG6 - int val3 CMP_REQUEUE
-//zz */
-//zz PRINT("sys_futex ( %p, %d, %d, %p, %p )", ARG1,ARG2,ARG3,ARG4,AR=
G5);
-//zz PRE_REG_READ6(long, "futex",=20
-//zz vki_u32 *, futex, int, op, int, val,
-//zz struct timespec *, utime, vki_u32 *, uaddr2, int, =
val3);
-//zz=20
-//zz PRE_MEM_READ( "futex(futex)", ARG1, sizeof(Int) );
-//zz=20
-//zz switch(ARG2) {
-//zz case VKI_FUTEX_WAIT:
-//zz if (ARG4 !=3D 0)
-//zz PRE_MEM_READ( "futex(timeout)", ARG4, sizeof(struct vki_timespec)=
);
-//zz break;
-//zz=20
-//zz case VKI_FUTEX_REQUEUE:
-//zz case VKI_FUTEX_CMP_REQUEUE:
-//zz PRE_MEM_READ( "futex(futex2)", ARG5, sizeof(Int) );
-//zz break;
-//zz=20
-//zz case VKI_FUTEX_WAKE:
-//zz case VKI_FUTEX_FD:
-//zz /* no additional pointers */
-//zz break;
-//zz=20
-//zz default:
-//zz SET_RESULT(-VKI_ENOSYS); // some futex function we don't un=
derstand
-//zz break;
-//zz }
-//zz }
-//zz=20
-//zz POST(sys_futex)
-//zz {
-//zz POST_MEM_WRITE( ARG1, sizeof(int) );
-//zz if (ARG2 =3D=3D VKI_FUTEX_FD) {
-//zz if (!VG_(fd_allowed)(RES, "futex", tid, True)) {
-//zz VG_(close)(RES);
-//zz SET_RESULT( -VKI_EMFILE );
-//zz } else {
-//zz if (VG_(clo_track_fds))
-//zz VG_(record_fd_open)(tid, RES, VG_(arena_strdup)(VG_AR_C=
ORE, (Char*)ARG1));
-//zz }
-//zz }
-//zz }
-//zz=20
+
+PRE(sys_futex)
+{
+ /*=20
+ arg param used by ops
+
+ ARG1 - u32 *futex all
+ ARG2 - int op
+ ARG3 - int val WAIT,WAKE,FD,REQUEUE,CMP_REQUEUE
+ ARG4 - struct timespec *utime WAIT:time* REQUEUE,CMP_REQUEUE:val2
+ ARG5 - u32 *uaddr2 REQUEUE,CMP_REQUEUE
+ ARG6 - int val3 CMP_REQUEUE
+ */
+ PRINT("sys_futex ( %p, %d, %d, %p, %p )", ARG1,ARG2,ARG3,ARG4,ARG5);
+ PRE_REG_READ6(long, "futex",=20
+ vki_u32 *, futex, int, op, int, val,
+ struct timespec *, utime, vki_u32 *, uaddr2, int, val3)=
;
+
+ PRE_MEM_READ( "futex(futex)", ARG1, sizeof(Int) );
+
+ *flags |=3D SfMayBlock;
+
+ switch(ARG2) {
+ case VKI_FUTEX_WAIT:
+ if (ARG4 !=3D 0)
+ PRE_MEM_READ( "futex(timeout)", ARG4, sizeof(struct vki_timespec) );
+ break;
+
+ case VKI_FUTEX_REQUEUE:
+ case VKI_FUTEX_CMP_REQUEUE:
+ PRE_MEM_READ( "futex(futex2)", ARG5, sizeof(Int) );
+ break;
+
+ case VKI_FUTEX_WAKE:
+ case VKI_FUTEX_FD:
+ /* no additional pointers */
+ break;
+
+ default:
+ SET_STATUS_Failure( VKI_ENOSYS ); // some futex function we don'=
t understand
+ break;
+ }
+}
+
+POST(sys_futex)
+{
+ vg_assert(SUCCESS);
+ POST_MEM_WRITE( ARG1, sizeof(int) );
+ if (ARG2 =3D=3D VKI_FUTEX_FD) {
+ if (!VG_(fd_allowed)(RES, "futex", tid, True)) {
+ VG_(close)(RES);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ if (VG_(clo_track_fds))
+ VG_(record_fd_open)(tid, RES, VG_(arena_strdup)(VG_AR_CORE, =
(Char*)ARG1));
+ }
+ }
+}
+
//zz PRE(sys_epoll_create, 0)
//zz {
//zz PRINT("sys_epoll_create ( %d )", ARG1);
@@ -482,7 +493,7 @@
//zz {
//zz if (!VG_(fd_allowed)(RES, "epoll_create", tid, True)) {
//zz VG_(close)(RES);
-//zz SET_RESULT( -VKI_EMFILE );
+//zz SET_STATUS_( -VKI_EMFILE );
//zz } else {
//zz if (VG_(clo_track_fds))
//zz VG_(record_fd_open) (tid, RES, NULL);
@@ -530,16 +541,16 @@
//zz PRINT("sys_tkill ( %d, %d )", ARG1,ARG2);
//zz PRE_REG_READ2(long, "tkill", int, tid, int, sig);
//zz if (!VG_(client_signal_OK)(ARG2)) {
-//zz SET_RESULT( -VKI_EINVAL );
+//zz SET_STATUS_( -VKI_EINVAL );
//zz return;
//zz }
//zz=20
//zz /* If we're sending SIGKILL, check to see if the target is one o=
f
//zz our threads and handle it specially. */
//zz if (ARG2 =3D=3D VKI_SIGKILL && VG_(do_sigkill)(ARG1, -1))
-//zz SET_RESULT(0);
+//zz SET_STATUS_(0);
//zz else
-//zz SET_RESULT(VG_(do_syscall2)(SYSNO, ARG1, ARG2));
+//zz SET_STATUS_(VG_(do_syscall2)(SYSNO, ARG1, ARG2));
//zz=20
//zz if (VG_(clo_trace_signals))
//zz VG_(message)(Vg_DebugMsg, "tkill: sent signal %d to pid %d",
@@ -547,40 +558,38 @@
//zz // Check to see if this kill gave us a pending signal
//zz XXX FIXME VG_(poll_signals)(tid);
//zz }
-//zz=20
-//zz PRE(sys_tgkill, Special)
-//zz {
-//zz /* int tgkill(pid_t tgid, pid_t tid, int sig); */
-//zz PRINT("sys_tgkill ( %d, %d, %d )", ARG1,ARG2,ARG3);
-//zz PRE_REG_READ3(long, "tgkill", int, tgid, int, tid, int, sig);
-//zz if (!VG_(client_signal_OK)(ARG3)) {
-//zz SET_RESULT( -VKI_EINVAL );
-//zz return;
-//zz }
-//zz =20
-//zz /* If we're sending SIGKILL, check to see if the target is one o=
f
-//zz our threads and handle it specially. */
-//zz if (ARG3 =3D=3D VKI_SIGKILL && VG_(do_sigkill)(ARG2, ARG1))
-//zz SET_RESULT(0);
-//zz else
-//zz SET_RESULT(VG_(do_syscall3)(SYSNO, ARG1, ARG2, ARG3));
-//zz=20
-//zz if (VG_(clo_trace_signals))
-//zz VG_(message)(Vg_DebugMsg, "tgkill: sent signal %d to pid %d/%=
d",
-//zz ARG3, ARG1, ARG2);
-//zz // Check to see if this kill gave us a pending signal
-//zz XXX FIXME VG_(poll_signals)(tid);
-//zz }
-//zz=20
-//zz POST(sys_tgkill)
-//zz {
-//zz if (VG_(clo_trace_signals))
-//zz VG_(message)(Vg_DebugMsg, "tgkill: sent signal %d to pid %d/%=
d",
-//zz ARG3, ARG1, ARG2);
-//zz // Check to see if this kill gave us a pending signal
-//zz XXX FIXME VG_(poll_signals)(tid);
-//zz }
-//zz=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 (!VG_(client_signal_OK)(ARG3)) {
+ SET_STATUS_Failure( VKI_EINVAL );
+ return;
+ }
+ =20
+ /* If we're sending SIGKILL, check to see if the target is one of
+ our threads and handle it specially. */
+ if (ARG3 =3D=3D VKI_SIGKILL && VG_(do_sigkill)(ARG2, ARG1))
+ SET_STATUS_Success(0);
+ else
+ SET_STATUS_from_SysRes(VG_(do_syscall3)(SYSNO, ARG1, ARG2, ARG3));
+
+ if (VG_(clo_trace_signals))
+ VG_(message)(Vg_DebugMsg, "tgkill: sent signal %d to pid %d/%d",
+ ARG3, ARG1, ARG2);
+ /* Check to see if this kill gave us a pending signal */
+ *flags |=3D SfPollAfter;
+}
+
+POST(sys_tgkill)
+{
+ if (VG_(clo_trace_signals))
+ VG_(message)(Vg_DebugMsg, "tgkill: sent signal %d to pid %d/%d",
+ ARG3, ARG1, ARG2);
+}
+
//zz PRE(sys_fadvise64, 0)
//zz {
//zz PRINT("sys_fadvise64 ( %d, %lld, %lu, %d )", ARG1,ARG2,ARG3);
@@ -613,14 +622,14 @@
//zz addr =3D VG_(find_map_space)(0, size, True);
//zz =20
//zz if (addr =3D=3D 0) {
-//zz SET_RESULT( -VKI_ENOMEM );
+//zz SET_STATUS_( -VKI_ENOMEM );
//zz return;
//zz }
//zz=20
//zz VG_(map_segment)(addr, size, VKI_PROT_READ|VKI_PROT_WRITE, SF_FI=
XED);
//zz =20
//zz VG_(pad_address_space)(0);
-//zz SET_RESULT( VG_(do_syscall2)(SYSNO, ARG1, ARG2) );
+//zz SET_STATUS_( VG_(do_syscall2)(SYSNO, ARG1, ARG2) );
//zz VG_(unpad_address_space)(0);
//zz=20
//zz if (RES =3D=3D 0) {
@@ -660,7 +669,7 @@
//zz size =3D VG_PGROUNDUP(sizeof(struct vki_aio_ring) +=20
//zz r->nr*sizeof(struct vki_io_event));
//zz=20
-//zz SET_RESULT( VG_(do_syscall1)(SYSNO, ARG1) );
+//zz SET_STATUS_( VG_(do_syscall1)(SYSNO, ARG1) );
//zz=20
//zz if (RES =3D=3D 0 && s !=3D NULL) {=20
//zz VG_TRACK( die_mem_munmap, ARG1, size );
Modified: trunk/coregrind/m_syscalls/syscalls-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_syscalls/syscalls-x86-linux.c 2005-06-07 20:04:56 U=
TC (rev 3849)
+++ trunk/coregrind/m_syscalls/syscalls-x86-linux.c 2005-06-08 00:02:49 U=
TC (rev 3850)
@@ -949,6 +949,7 @@
DECL_TEMPLATE(x86_linux, sys_ipc);
DECL_TEMPLATE(x86_linux, sys_rt_sigreturn);
DECL_TEMPLATE(x86_linux, sys_modify_ldt);
+DECL_TEMPLATE(x86_linux, sys_set_thread_area);
=20
//zz PRE(old_select, MayBlock)
//zz {
@@ -1192,16 +1193,16 @@
}
}
=20
-//zz PRE(sys_set_thread_area, Special)
-//zz {
-//zz PRINT("sys_set_thread_area ( %p )", ARG1);
-//zz PRE_REG_READ1(int, "set_thread_area", struct user_desc *, u_info=
)
-//zz PRE_MEM_READ( "set_thread_area(u_info)", ARG1, sizeof(vki_modify=
_ldt_t) );
-//zz=20
-//zz /* "do" the syscall ourselves; the kernel never sees it */
-//zz SET_STATUS_( sys_set_thread_area( tid, (void *)ARG1 ) );
-//zz }
-//zz=20
+PRE(sys_set_thread_area)
+{
+ PRINT("sys_set_thread_area ( %p )", ARG1);
+ PRE_REG_READ1(int, "set_thread_area", struct user_desc *, u_info)
+ PRE_MEM_READ( "set_thread_area(u_info)", ARG1, sizeof(vki_modify_ldt_=
t) );
+
+ /* "do" the syscall ourselves; the kernel never sees it */
+ SET_STATUS_from_SysRes( sys_set_thread_area( tid, (void *)ARG1 ) );
+}
+
//zz PRE(sys_get_thread_area, Special)
//zz {
//zz PRINT("sys_get_thread_area ( %p )", ARG1);
@@ -2204,10 +2205,10 @@
//zz LINX_(__NR_tkill, sys_tkill), // 238 */Linu=
x
//zz LINXY(__NR_sendfile64, sys_sendfile64), // 239
//zz=20
-//zz LINXY(__NR_futex, sys_futex), // 240
+ LINXY(__NR_futex, sys_futex), // 240
//zz GENX_(__NR_sched_setaffinity, sys_sched_setaffinity), // 241
//zz GENXY(__NR_sched_getaffinity, sys_sched_getaffinity), // 242
-//zz PLAX_(__NR_set_thread_area, sys_set_thread_area), // 243
+ PLAX_(__NR_set_thread_area, sys_set_thread_area), // 243
//zz PLAX_(__NR_get_thread_area, sys_get_thread_area), // 244
//zz=20
//zz LINX_(__NR_io_setup, sys_io_setup), // 245
@@ -2225,7 +2226,7 @@
//zz LINX_(__NR_epoll_ctl, sys_epoll_ctl), // 255
//zz LINXY(__NR_epoll_wait, sys_epoll_wait), // 256
//zz // (__NR_remap_file_pages, sys_remap_file_pages), // 257 */L=
inux
-//zz GENX_(__NR_set_tid_address, sys_set_tid_address), // 258
+ LINX_(__NR_set_tid_address, sys_set_tid_address), // 258
//zz GENXY(__NR_timer_create, sys_timer_create), // 259
//zz=20
//zz GENXY(__NR_timer_settime, sys_timer_settime), // (timer_cre=
ate+1)
@@ -2240,7 +2241,7 @@
//zz GENXY(__NR_statfs64, sys_statfs64), // 268
//zz GENXY(__NR_fstatfs64, sys_fstatfs64), // 269
//zz=20
-//zz LINX_(__NR_tgkill, sys_tgkill), // 270 */Linu=
x
+ LINX_(__NR_tgkill, sys_tgkill), // 270 */Linux
//zz GENX_(__NR_utimes, sys_utimes), // 271
//zz LINX_(__NR_fadvise64_64, sys_fadvise64_64), // 272 */(Lin=
ux?)
GENX_(__NR_vserver, sys_ni_syscall), // 273
|