]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
* handle sys_getprocs64 on ppc32-aix5
authorJulian Seward <jseward@acm.org>
Tue, 22 Jul 2008 10:01:25 +0000 (10:01 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 22 Jul 2008 10:01:25 +0000 (10:01 +0000)
* handle sys_uname properly on ppc{32,64}-aix5

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8451

coregrind/m_syswrap/syswrap-aix5.c
coregrind/m_syswrap/syswrap-ppc32-aix5.c
coregrind/m_syswrap/syswrap-ppc64-aix5.c

index a3307355d5acdb656610c4eeb99c6237a4ce823b..8cd4225e045e741c06c8902a37847ac5a7b1130d 100644 (file)
@@ -264,6 +264,7 @@ static void handle_sbrk ( Word delta )
 #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(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)
index 0835ced1d137a35eb22163fcc4e997c2b6163b0e..37b69061cdba840b345f2995a47e16820f674467 100644 (file)
@@ -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),
index f5074bb3bdbf60ceb0a27111783b3474c2c86879..49cd74fd07515ff961c0c00d574fb0821948b34e 100644 (file)
@@ -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),