summaryrefslogtreecommitdiff
path: root/include/valgrind.h
diff options
context:
space:
mode:
authorsewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2006-01-20 15:46:46 +0000
committersewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2006-01-20 15:46:46 +0000
commit66226cc1e5e852de3584c76984dace8679730b42 (patch)
tree88e8068fa91f1f8059b6fd025a6410fa86f5f836 /include/valgrind.h
parentc885844f7484a13bcf1c7f9b14cf5bc527462963 (diff)
x86 function wrapping fixes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5571 a5019735-40e9-0310-863c-91ae7b9d1cf9
Diffstat (limited to 'include/valgrind.h')
-rw-r--r--include/valgrind.h62
1 files changed, 31 insertions, 31 deletions
diff --git a/include/valgrind.h b/include/valgrind.h
index 6200669a..96e9508d 100644
--- a/include/valgrind.h
+++ b/include/valgrind.h
@@ -458,12 +458,12 @@ typedef
/* These CALL_FN_ macros assume that on x86-linux, sizeof(unsigned
long) == 4. */
-#define CALL_FN_W_v(lval, fnptr) \
+#define CALL_FN_W_v(lval, orig) \
do { \
- volatile void* _fnptr = (fnptr); \
+ volatile OrigFn _orig = (orig); \
volatile unsigned long _argvec[1]; \
volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_fnptr; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
__asm__ volatile( \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
@@ -474,12 +474,12 @@ typedef
lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_W(lval, fnptr, arg1) \
+#define CALL_FN_W_W(lval, orig, arg1) \
do { \
- volatile void* _fnptr = (fnptr); \
+ volatile OrigFn _orig = (orig); \
volatile unsigned long _argvec[2]; \
volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_fnptr; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
_argvec[1] = (unsigned long)(arg1); \
__asm__ volatile( \
"pushl 4(%%eax)\n\t" \
@@ -493,12 +493,12 @@ typedef
lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_WW(lval, fnptr, arg1,arg2) \
+#define CALL_FN_W_WW(lval, orig, arg1,arg2) \
do { \
- volatile void* _fnptr = (fnptr); \
+ volatile OrigFn _orig = (orig); \
volatile unsigned long _argvec[3]; \
volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_fnptr; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
_argvec[1] = (unsigned long)(arg1); \
_argvec[2] = (unsigned long)(arg2); \
__asm__ volatile( \
@@ -514,12 +514,12 @@ typedef
lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_WWWW(lval, fnptr, arg1,arg2,arg3,arg4) \
+#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
do { \
- volatile void* _fnptr = (fnptr); \
+ volatile OrigFn _orig = (orig); \
volatile unsigned long _argvec[5]; \
volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_fnptr; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
_argvec[1] = (unsigned long)(arg1); \
_argvec[2] = (unsigned long)(arg2); \
_argvec[3] = (unsigned long)(arg3); \
@@ -539,12 +539,12 @@ typedef
lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_5W(lval, fnptr, arg1,arg2,arg3,arg4,arg5) \
+#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
do { \
- volatile void* _fnptr = (fnptr); \
+ volatile OrigFn _orig = (orig); \
volatile unsigned long _argvec[6]; \
volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_fnptr; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
_argvec[1] = (unsigned long)(arg1); \
_argvec[2] = (unsigned long)(arg2); \
_argvec[3] = (unsigned long)(arg3); \
@@ -566,12 +566,12 @@ typedef
lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_6W(lval, fnptr, arg1,arg2,arg3,arg4,arg5,arg6) \
+#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
do { \
- volatile void* _fnptr = (fnptr); \
+ volatile OrigFn _orig = (orig); \
volatile unsigned long _argvec[7]; \
volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_fnptr; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
_argvec[1] = (unsigned long)(arg1); \
_argvec[2] = (unsigned long)(arg2); \
_argvec[3] = (unsigned long)(arg3); \
@@ -595,13 +595,13 @@ typedef
lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_7W(lval, fnptr, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7) \
+#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7) \
do { \
- volatile void* _fnptr = (fnptr); \
+ volatile OrigFn _orig = (orig); \
volatile unsigned long _argvec[8]; \
volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_fnptr; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
_argvec[1] = (unsigned long)(arg1); \
_argvec[2] = (unsigned long)(arg2); \
_argvec[3] = (unsigned long)(arg3); \
@@ -627,13 +627,13 @@ typedef
lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_8W(lval, fnptr, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8) \
+#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8) \
do { \
- volatile void* _fnptr = (fnptr); \
+ volatile OrigFn _orig = (orig); \
volatile unsigned long _argvec[9]; \
volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_fnptr; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
_argvec[1] = (unsigned long)(arg1); \
_argvec[2] = (unsigned long)(arg2); \
_argvec[3] = (unsigned long)(arg3); \
@@ -661,14 +661,14 @@ typedef
lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_12W(lval, fnptr, arg1,arg2,arg3,arg4,arg5, \
- arg6,arg7,arg8,arg9,arg10, \
- arg11,arg12) \
+#define CALL_FN_W_12W(lval, orig, arg1,arg2,arg3,arg4,arg5, \
+ arg6,arg7,arg8,arg9,arg10, \
+ arg11,arg12) \
do { \
- volatile void* _fnptr = (fnptr); \
+ volatile OrigFn _orig = (orig); \
volatile unsigned long _argvec[13]; \
volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_fnptr; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
_argvec[1] = (unsigned long)(arg1); \
_argvec[2] = (unsigned long)(arg2); \
_argvec[3] = (unsigned long)(arg3); \