From: Julian Seward Date: Tue, 22 Jul 2008 10:01:25 +0000 (+0000) Subject: * handle sys_getprocs64 on ppc32-aix5 X-Git-Tag: svn/VALGRIND_3_4_0~312 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8204098c5e9cfbece127b7db3f0fa60beae46875;p=thirdparty%2Fvalgrind.git * handle sys_getprocs64 on ppc32-aix5 * handle sys_uname properly on ppc{32,64}-aix5 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8451 --- diff --git a/coregrind/m_syswrap/syswrap-aix5.c b/coregrind/m_syswrap/syswrap-aix5.c index a3307355d5..8cd4225e04 100644 --- a/coregrind/m_syswrap/syswrap-aix5.c +++ b/coregrind/m_syswrap/syswrap-aix5.c @@ -264,6 +264,7 @@ static void handle_sbrk ( Word delta ) #include #include #include +#include /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */ HChar* ML_(aix5debugstuff_pc_to_fnname) ( Addr pc ) @@ -1175,6 +1176,9 @@ POST(sys_getpriv) 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,7 +2520,13 @@ PRE(sys_umask) 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) diff --git a/coregrind/m_syswrap/syswrap-ppc32-aix5.c b/coregrind/m_syswrap/syswrap-ppc32-aix5.c index 0835ced1d1..37b69061cd 100644 --- a/coregrind/m_syswrap/syswrap-ppc32-aix5.c +++ b/coregrind/m_syswrap/syswrap-ppc32-aix5.c @@ -789,6 +789,7 @@ AIX5SCTabEntry aix5_ppc32_syscall_table[] 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 @@ AIX5SCTabEntry aix5_ppc32_syscall_table[] 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), diff --git a/coregrind/m_syswrap/syswrap-ppc64-aix5.c b/coregrind/m_syswrap/syswrap-ppc64-aix5.c index f5074bb3bd..49cd74fd07 100644 --- a/coregrind/m_syswrap/syswrap-ppc64-aix5.c +++ b/coregrind/m_syswrap/syswrap-ppc64-aix5.c @@ -751,6 +751,7 @@ AIX5SCTabEntry aix5_ppc64_syscall_table[] 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),