|
From: <sv...@va...> - 2006-10-05 08:55:33
|
Author: tom
Date: 2006-10-05 09:55:30 +0100 (Thu, 05 Oct 2006)
New Revision: 6189
Log:
Handle kpread and statfs system calls on ppc32-aix5 systems.
Modified:
branches/AIX5/coregrind/m_syswrap/priv_syswrap-aix5.h
branches/AIX5/coregrind/m_syswrap/syswrap-aix5.c
branches/AIX5/coregrind/m_syswrap/syswrap-ppc32-aix5.c
branches/AIX5/include/vki/vki-ppc32-aix5.h
branches/AIX5/include/vki/vki-ppc64-aix5.h
Modified: branches/AIX5/coregrind/m_syswrap/priv_syswrap-aix5.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
--- branches/AIX5/coregrind/m_syswrap/priv_syswrap-aix5.h 2006-10-05 08:5=
4:38 UTC (rev 6188)
+++ branches/AIX5/coregrind/m_syswrap/priv_syswrap-aix5.h 2006-10-05 08:5=
5:30 UTC (rev 6189)
@@ -122,6 +122,7 @@
DECL_TEMPLATE(aix5, sys_kioctl);
DECL_TEMPLATE(aix5, sys_klseek);
DECL_TEMPLATE(aix5, sys_knlist);
+DECL_TEMPLATE(aix5, sys_kpread);
DECL_TEMPLATE(aix5, sys_kread);
DECL_TEMPLATE(aix5, sys_kreadv);
DECL_TEMPLATE(aix5, sys_kthread_ctl);
@@ -165,6 +166,7 @@
DECL_TEMPLATE(aix5, sys_sigcleanup);
DECL_TEMPLATE(aix5, sys_sigprocmask);
DECL_TEMPLATE(aix5, sys_socket);
+DECL_TEMPLATE(aix5, sys_statfs);
DECL_TEMPLATE(aix5, sys_statx);
DECL_TEMPLATE(aix5, sys_symlink);
DECL_TEMPLATE(aix5, sys_sys_parm);
Modified: branches/AIX5/coregrind/m_syswrap/syswrap-aix5.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/AIX5/coregrind/m_syswrap/syswrap-aix5.c 2006-10-05 08:54:38 =
UTC (rev 6188)
+++ branches/AIX5/coregrind/m_syswrap/syswrap-aix5.c 2006-10-05 08:55:30 =
UTC (rev 6189)
@@ -1492,6 +1492,24 @@
PRINT("knlist (BOGUS HANDLER)");
}
=20
+PRE(sys_kpread)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_kpread ( %d, %p, %llu, %lld )",
+ ARG1, ARG2, (ULong)ARG3, ARG4);
+ PRE_REG_READ4(ssize_t, "kpread",
+ unsigned int, fd, char *, buf,
+ vki_size_t, count, long, offset);
+ PRE_MEM_WRITE( "kpread(buf)", ARG2, ARG3 );
+}
+POST(sys_kpread)
+{
+ vg_assert(SUCCESS);
+ if (RES > 0) {
+ POST_MEM_WRITE( ARG2, RES );
+ }
+}
+
PRE(sys_kread)
{
*flags |=3D SfMayBlock;
@@ -2131,6 +2149,18 @@
PRE_REG_READ3(int, "socket", int, domain, int, type, int, protocol);
}
=20
+PRE(sys_statfs)
+{
+ PRINT("sys_statfs ( %p(%s), %p )",ARG1,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) );
+}
+
PRE(sys_statx)
{
PRINT("statx ( %p(%s), %p, %ld, %ld )", ARG1,ARG1,ARG2,ARG3,ARG4);
Modified: branches/AIX5/coregrind/m_syswrap/syswrap-ppc32-aix5.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/AIX5/coregrind/m_syswrap/syswrap-ppc32-aix5.c 2006-10-05 08:=
54:38 UTC (rev 6188)
+++ branches/AIX5/coregrind/m_syswrap/syswrap-ppc32-aix5.c 2006-10-05 08:=
55:30 UTC (rev 6189)
@@ -782,6 +782,7 @@
AIXXY(__NR_AIX5_kioctl, sys_kioctl),
AIXX_(__NR_AIX5_klseek, sys_klseek),
AIXX_(__NR_AIX5_knlist, sys_knlist),
+ AIXXY(__NR_AIX5_kpread, sys_kpread),
AIXXY(__NR_AIX5_kread, sys_kread),
AIXXY(__NR_AIX5_kreadv, sys_kreadv),
AIXX_(__NR_AIX5_kthread_ctl, sys_kthread_ctl),
@@ -826,6 +827,7 @@
AIXXY(__NR_AIX5_sigprocmask, sys_sigprocmask),
AIXX_(__NR_AIX5_socket, sys_socket),
AIXXY(__NR_AIX5_statx, sys_statx),
+ AIXXY(__NR_AIX5_statfs, sys_statfs),
AIXX_(__NR_AIX5_symlink, sys_symlink),
AIXXY(__NR_AIX5_sys_parm, sys_sys_parm),
AIXXY(__NR_AIX5_sysconfig, sys_sysconfig),
Modified: branches/AIX5/include/vki/vki-ppc32-aix5.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
--- branches/AIX5/include/vki/vki-ppc32-aix5.h 2006-10-05 08:54:38 UTC (r=
ev 6188)
+++ branches/AIX5/include/vki/vki-ppc32-aix5.h 2006-10-05 08:55:30 UTC (r=
ev 6189)
@@ -143,6 +143,15 @@
#define _VKI_IOC_DIR(_x) (((_x) >> 30) & 3)
#define _VKI_IOC_SIZE(_x) (((_x) >> 16) & 0x7F)
=20
+/* -------------- Filesystems --------------- */
+
+/* Known:
+ sizeof(struct statfs) =3D 132
+*/
+struct vki_statfs {
+ UChar __off0[132];
+};
+
/* ---------------- MMappery ---------------- */
=20
#define VKI_PAGE_SIZE 4096 /* this is checked by the launcher */
Modified: branches/AIX5/include/vki/vki-ppc64-aix5.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
--- branches/AIX5/include/vki/vki-ppc64-aix5.h 2006-10-05 08:54:38 UTC (r=
ev 6188)
+++ branches/AIX5/include/vki/vki-ppc64-aix5.h 2006-10-05 08:55:30 UTC (r=
ev 6189)
@@ -143,6 +143,15 @@
#define _VKI_IOC_DIR(_x) (((_x) >> 30) & 3)
#define _VKI_IOC_SIZE(_x) (((_x) >> 16) & 0x7F)
=20
+/* -------------- Filesystems --------------- */
+
+/* Known:
+ sizeof(struct statfs) =3D 176
+*/
+struct vki_statfs {
+ UChar __off0[176];
+};
+
/* ---------------- MMappery ---------------- */
=20
#define VKI_PAGE_SIZE 4096 /* this is checked by the launcher */
|