本文整理汇总了C++中CALL_FN_W_W函数的典型用法代码示例。如果您正苦于以下问题:C++ CALL_FN_W_W函数的具体用法?C++ CALL_FN_W_W怎么用?C++ CALL_FN_W_W使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了CALL_FN_W_W函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PTH_FUNC
// pthread_mutex_unlock
PTH_FUNC(int, pthreadZumutexZuunlock, // pthread_mutex_unlock
pthread_mutex_t *mutex)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
if (TRACE_PTH_FNS) {
fprintf(stderr, "<< pthread_mxunlk %p", mutex); fflush(stderr);
}
DO_CREQ_v_W(_VG_USERREQ__HG_PTHREAD_MUTEX_UNLOCK_PRE,
pthread_mutex_t*,mutex);
CALL_FN_W_W(ret, fn, mutex);
if (ret == 0 /*success*/) {
DO_CREQ_v_W(_VG_USERREQ__HG_PTHREAD_MUTEX_UNLOCK_POST,
pthread_mutex_t*,mutex);
} else {
DO_PthAPIerror( "pthread_mutex_unlock", ret );
}
if (TRACE_PTH_FNS) {
fprintf(stderr, " mxunlk -> %d >>\n", ret);
}
return ret;
}
示例2: I_WRAP_SONAME_FNNAME_ZU
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact) ( int n )
{
int r;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
printf("in wrapper1-pre: fact(%d)\n", n);
CALL_FN_W_W(r, fn, n);
printf("in wrapper1-post: fact(%d) = %d\n", n, r);
return r;
}
示例3: pthread_rwlock_destroy_intercept
static __always_inline
int pthread_rwlock_destroy_intercept(pthread_rwlock_t* rwlock)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
CALL_FN_W_W(ret, fn, rwlock);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_RWLOCK_DESTROY,
rwlock, 0, 0, 0, 0);
return ret;
}
示例4: __cxa_guard_abort_release_intercept
static __always_inline
void __cxa_guard_abort_release_intercept(void *guard)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_MUTEX_UNLOCK,
guard, mutex_type_cxa_guard, 0, 0, 0);
CALL_FN_W_W(ret, fn, guard);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_MUTEX_UNLOCK,
guard, 0, 0, 0, 0);
}
示例5: PTH_FUNC
// pthread_spin_unlock
PTH_FUNC(int, pthreadZuspinZuunlock, // pthread_spin_unlock
pthread_spinlock_t *spinlock)
{
int ret;
int res;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST(res, -1, VG_USERREQ__SPIN_INIT_OR_UNLOCK,
spinlock, mutex_type_spinlock, 0, 0, 0);
CALL_FN_W_W(ret, fn, spinlock);
return ret;
}
示例6: I_WRAP_SONAME_FNNAME_ZU
UInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_1) ( UInt a1 )
{
UInt r;
void* fn;
VALGRIND_GET_ORIG_FN(fn);
printf("fn_1 wrapper pre ( %d )\n", (int)a1);
CALL_FN_W_W(r, fn, a1);
printf("fn_1 wrapper post1 = %d\n", (int)r);
CALL_FN_v_W(fn, a1);
printf("fn_1 wrapper post2 = %d\n", (int)r);
return r;
}
示例7: QT4CORE_FUNC
// QMutex::unlock() -- _ZN6QMutex6unlockEv
QT4CORE_FUNC(void, _ZN6QMutex6unlockEv,
void* mutex)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_MUTEX_UNLOCK,
mutex, mutex_type(mutex), 0, 0, 0);
CALL_FN_W_W(ret, fn, mutex);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_MUTEX_UNLOCK,
mutex, 0, 0, 0, 0);
}
示例8: VG_WRAP_FUNCTION_ZU
int VG_WRAP_FUNCTION_ZU(VG_Z_LIBC_SONAME, unsetenv) (const char* name)
{
OrigFn fn;
Word result;
const char* p = name;
VALGRIND_GET_ORIG_FN(fn);
if (p)
while (*p++)
__asm__ __volatile__("" ::: "memory");
CALL_FN_W_W(result, fn, name);
return result;
}
示例9: sem_post_intercept
static __always_inline int sem_post_intercept(sem_t *sem)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_SEM_POST,
sem, 0, 0, 0, 0);
CALL_FN_W_W(ret, fn, sem);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_SEM_POST,
sem, ret == 0, 0, 0, 0);
return ret;
}
示例10: I_WRAP_SONAME_FNNAME_ZU
int I_WRAP_SONAME_FNNAME_ZU(NONE,fact2) ( int n )
{
int r;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
printf("in wrapper2-pre: fact(%d)\n", n); fflush(stdout);
addMoreLard();
CALL_FN_W_W(r, fn, n);
addMoreLard();
printf("in wrapper2-post: fact(%d) = %d\n", n, r); fflush(stdout);
return r;
}
示例11: pthread_detach_intercept
static __always_inline
int pthread_detach_intercept(pthread_t pt_thread)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
CALL_FN_W_W(ret, fn, pt_thread);
DRD_(set_joinable)(pt_thread, 0);
return ret;
}
示例12: PTH_FUNC
// pthread_cancel*
PTH_FUNC(int, pthreadZucancelZa, pthread_t pt_thread)
{
int res;
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST(res, -1, VG_USERREQ__PRE_THREAD_CANCEL,
pt_thread, 0, 0, 0, 0);
CALL_FN_W_W(ret, fn, pt_thread);
VALGRIND_DO_CLIENT_REQUEST(res, -1, VG_USERREQ__POST_THREAD_CANCEL,
pt_thread, ret==0, 0, 0, 0);
return ret;
}
示例13: pthread_cond_broadcast_intercept
static __always_inline
int pthread_cond_broadcast_intercept(pthread_cond_t* cond)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_COND_BROADCAST,
cond, 0, 0, 0, 0);
CALL_FN_W_W(ret, fn, cond);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_COND_BROADCAST,
cond, 0, 0, 0, 0);
return ret;
}
示例14: pthread_cond_destroy_intercept
static __always_inline
int pthread_cond_destroy_intercept(pthread_cond_t* cond)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_COND_DESTROY,
cond, 0, 0, 0, 0);
CALL_FN_W_W(ret, fn, cond);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_COND_DESTROY,
cond, ret==0, 0, 0, 0);
return ret;
}
示例15: pthread_mutex_unlock_intercept
static __always_inline
int pthread_mutex_unlock_intercept(pthread_mutex_t *mutex)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_MUTEX_UNLOCK,
mutex, DRD_(mutex_type)(mutex), 0, 0, 0);
CALL_FN_W_W(ret, fn, mutex);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_MUTEX_UNLOCK,
mutex, 0, 0, 0, 0);
return ret;
}