|
From: <sv...@va...> - 2005-10-05 08:27:16
|
Author: tom
Date: 2005-10-05 09:27:08 +0100 (Wed, 05 Oct 2005)
New Revision: 4864
Log:
Update README_MISSING_SYSCALL_OR_IOCTL to reflect reality - patch
from Reimar D?\195?\182ffinger via bug 112031.
Modified:
trunk/README_MISSING_SYSCALL_OR_IOCTL
Modified: trunk/README_MISSING_SYSCALL_OR_IOCTL
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/README_MISSING_SYSCALL_OR_IOCTL 2005-10-05 08:24:20 UTC (rev 48=
63)
+++ trunk/README_MISSING_SYSCALL_OR_IOCTL 2005-10-05 08:27:08 UTC (rev 48=
64)
@@ -12,7 +12,7 @@
there's not a lot of need to distinguish them (at least conceptually)
in the discussion that follows.
=20
-All this machinery is in coregrind/vg_syscalls.c.
+All this machinery is in coregrind/m_syswrap.
=20
=20
What are syscall/ioctl wrappers? What do they do?
@@ -101,7 +101,7 @@
grep NNN /usr/include/asm/unistd.h
=20
This should tell you something like __NR_mysyscallname.
- Copy this entry to coregrind/$(VG_PLATFORM)/vki_unistd.h.
+ Copy this entry to coregrind/vki_unistd-$(VG_PLATFORM).h.
=20
=20
2. Do 'man 2 mysyscallname' to get some idea of what the syscall
@@ -115,8 +115,9 @@
=20
=20
3. Add a case to the already-huge collection of wrappers in=20
- coregrind/vg_syscalls.c. For each in-memory parameter which is=20
- read or written by the syscall, do one of
+ the coregrind/m_syswrap/syswrap-*.c files.=20
+ For each in-memory parameter which is read or written by
+ the syscall, do one of
=20
PRE_MEM_READ( ... )
PRE_MEM_RASCIIZ( ... )=20
@@ -126,8 +127,13 @@
succeeds, issue suitable POST_MEM_WRITE( ... ) calls.
(There's no need for POST_MEM_READ calls.)
=20
- Also, add it to the sys_info[] array; use SYSBA if it requires a
- PRE() and POST() function, and SYSB_ if it only requires a PRE()
+ Also, add it to the syscall_table[] array; use one of GENX_, GENXY
+ LINX_, LINXY, PLAX_, PLAXY.
+ GEN* for generic syscalls (in syswrap-generic.c), LIN* for linux
+ specific ones (in syswrap-linux.c) and PLA* for the platform
+ dependant ones (in syswrap-$(PLATFORM)-linux.c).
+ The *XY variant if it requires a PRE() and POST() function, and
+ the *X_ variant if it only requires a PRE()
function. The 2nd arg of these macros indicate if the syscall
could possibly block.
=20
|