|
From: <sv...@va...> - 2008-07-22 10:01:17
|
Author: sewardj
Date: 2008-07-22 11:01:25 +0100 (Tue, 22 Jul 2008)
New Revision: 8451
Log:
* handle sys_getprocs64 on ppc32-aix5
* handle sys_uname properly on ppc{32,64}-aix5
Modified:
trunk/coregrind/m_syswrap/syswrap-aix5.c
trunk/coregrind/m_syswrap/syswrap-ppc32-aix5.c
trunk/coregrind/m_syswrap/syswrap-ppc64-aix5.c
Modified: trunk/coregrind/m_syswrap/syswrap-aix5.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-aix5.c 2008-07-22 09:59:48 UTC (rev 8450)
+++ trunk/coregrind/m_syswrap/syswrap-aix5.c 2008-07-22 10:01:25 UTC (rev 8451)
@@ -264,6 +264,7 @@
#include <sys/shm.h>
#include <semaphore.h>
#include <sys/statfs.h>
+#include <sys/utsname.h>
/* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
HChar* ML_(aix5debugstuff_pc_to_fnname) ( Addr pc )
@@ -1175,6 +1176,9 @@
POST_MEM_WRITE(ARG2, 8);
}
+/* Note that this is used for both sys_getprocs and sys_getprocs64. I
+ think that's correct - from the man page, the calling conventions
+ look identical. */
PRE(sys_getprocs)
{
PRINT("getprocs ( %#lx, %ld, %#lx, %ld, %#lx, %ld )",
@@ -2516,8 +2520,14 @@
PRE(sys_uname)
{
- PRINT("uname (BOGUS HANDLER)");
+ PRINT("uname ( %#lx )", ARG1);
+ PRE_MEM_WRITE( "uname(Name)", ARG1, sizeof(struct utsname));
}
+POST(sys_uname)
+{
+ vg_assert(SUCCESS);
+ POST_MEM_WRITE( ARG1, sizeof(struct utsname));
+}
PRE(sys_unlink)
{
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-aix5.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc32-aix5.c 2008-07-22 09:59:48 UTC (rev 8450)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-aix5.c 2008-07-22 10:01:25 UTC (rev 8451)
@@ -789,6 +789,7 @@
AIXXY(__NR_AIX5_gethostname, sys_gethostname),
AIXXY(__NR_AIX5_getpriv, sys_getpriv),
AIXXY(__NR_AIX5_getprocs, sys_getprocs),
+ AIXXY(__NR_AIX5_getprocs64, sys_getprocs), /* XXX: correct? */
AIXX_(__NR_AIX5_getrpid, sys_getrpid),
AIXXY(__NR_AIX5_getsockopt, sys_getsockopt),
AIXX_(__NR_AIX5_gettimerid, sys_gettimerid),
@@ -870,7 +871,7 @@
AIXX_(__NR_AIX5_thread_waitlock_, sys_thread_waitlock_),
AIXXY(__NR_AIX5_times, sys_times),
AIXX_(__NR_AIX5_umask, sys_umask),
- AIXX_(__NR_AIX5_uname, sys_uname),
+ AIXXY(__NR_AIX5_uname, sys_uname),
AIXX_(__NR_AIX5_unlink, sys_unlink),
AIXX_(__NR_AIX5_utimes, sys_utimes),
AIXXY(__NR_AIX5_vmgetinfo, sys_vmgetinfo),
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-aix5.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc64-aix5.c 2008-07-22 09:59:48 UTC (rev 8450)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-aix5.c 2008-07-22 10:01:25 UTC (rev 8451)
@@ -751,6 +751,7 @@
AIXX_(__NR_AIX5_thread_unlock, sys_thread_unlock),
AIXX_(__NR_AIX5_thread_waitlock_, sys_thread_waitlock_),
AIXXY(__NR_AIX5_times, sys_times),
+ AIXXY(__NR_AIX5_uname, sys_uname),
AIXX_(__NR_AIX5_unlink, sys_unlink),
AIXX_(__NR_AIX5_utimes, sys_utimes),
AIXXY(__NR_AIX5_vmgetinfo, sys_vmgetinfo),
|