13 #define ntohl(_x) (_x) 14 #define ntohs(_x) (_x) 15 #define htonl(_x) (_x) 16 #define htons(_x) (_x) 28 #if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__) 29 # define UNLIKELY(value) __builtin_expect((value), 0) 31 # define UNLIKELY(value) (value) 34 #if defined(WITH_VALGRIND) && defined(HAVE_VALGRIND_VALGRIND_H) 36 #include <valgrind/valgrind.h> 37 #include <valgrind/memcheck.h> 38 #include <valgrind/callgrind.h> 39 #include <valgrind/helgrind.h> 40 #include <valgrind/drd.h> 42 #if !defined(ANNOTATE_BENIGN_RACE_SIZED) 43 #define ANNOTATE_BENIGN_RACE_SIZED(_a, _b, _c) 53 static inline void *
DRD_xcalloc(
size_t nmemb,
size_t size)
55 size_t nb = nmemb * size;
61 static inline void *
DRD_xrealloc(
void * ptr,
size_t size)
70 size_t nb = strlen(s) + 1;
79 #define RUNNING_ON_VALGRIND (0) 80 #define VALGRIND_DISCARD_TRANSLATIONS(_qzz_addr,_qzz_len) 82 #define VALGRIND_MALLOCLIKE_BLOCK(addr, sizeB, rzB, is_zeroed) 83 #define VALGRIND_FREELIKE_BLOCK(addr, rzB) 85 #define VALGRIND_CREATE_MEMPOOL(pool, rzB, is_zeroed) 86 #define VALGRIND_DESTROY_MEMPOOL(pool) 87 #define VALGRIND_MEMPOOL_ALLOC(pool, addr, size) 88 #define VALGRIND_MEMPOOL_FREE(pool, addr) 89 #define VALGRIND_MEMPOOL_TRIM(pool, addr, size) 90 #define VALGRIND_MOVE_MEMPOOL(poolA, poolB) 91 #define VALGRIND_MEMPOOL_CHANGE(pool, addrA, addrB, size) 92 #define VALGRIND_MEMPOOL_EXISTS(pool) (0) 94 #define VALGRIND_MAKE_MEM_NOACCESS(_qzz_addr,_qzz_len) 95 #define VALGRIND_MAKE_MEM_UNDEFINED(_qzz_addr,_qzz_len) 96 #define VALGRIND_MAKE_MEM_DEFINED(_qzz_addr,_qzz_len) 97 #define VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE(_qzz_addr,_qzz_len) 98 #define VALGRIND_CREATE_BLOCK(_qzz_addr,_qzz_len, _qzz_desc) 99 #define VALGRIND_DISCARD(_qzz_blkindex) 100 #define VALGRIND_CHECK_MEM_IS_ADDRESSABLE(_qzz_addr,_qzz_len) 101 #define VALGRIND_CHECK_MEM_IS_DEFINED(_qzz_addr,_qzz_len) 102 #define VALGRIND_CHECK_VALUE_IS_DEFINED(__lvalue) 103 #define VALGRIND_DO_LEAK_CHECK 104 #define VALGRIND_DO_QUICK_LEAK_CHECK 105 #define VALGRIND_COUNT_LEAKS(leaked, dubious, reachable, suppressed) 106 #define VALGRIND_COUNT_LEAK_BLOCKS(leaked, dubious, reachable, suppressed) 107 #define VALGRIND_GET_VBITS(zza,zzvbits,zznbytes) 108 #define VALGRIND_SET_VBITS(zza,zzvbits,zznbytes) 110 #define CALLGRIND_DUMP_STATS 111 #define CALLGRIND_DUMP_STATS_AT(pos_str) 112 #define CALLGRIND_ZERO_STATS 113 #define CALLGRIND_TOGGLE_COLLECT 114 #define CALLGRIND_START_INSTRUMENTATION 115 #define CALLGRIND_STOP_INSTRUMENTATION 117 #define VALGRIND_HG_MUTEX_INIT_POST(_mutex, _mbRec) 118 #define VALGRIND_HG_MUTEX_LOCK_PRE(_mutex, _isTryLock) 119 #define VALGRIND_HG_MUTEX_LOCK_POST(_mutex) 120 #define VALGRIND_HG_MUTEX_UNLOCK_PRE(_mutex) 121 #define VALGRIND_HG_MUTEX_UNLOCK_POST(_mutex) 122 #define VALGRIND_HG_MUTEX_DESTROY_PRE(_mutex) 123 #define VALGRIND_HG_SEM_INIT_POST(_sem, _value) 124 #define VALGRIND_HG_SEM_WAIT_POST(_sem) 125 #define VALGRIND_HG_SEM_POST_PRE(_sem) 126 #define VALGRIND_HG_SEM_DESTROY_PRE(_sem) 127 #define VALGRIND_HG_BARRIER_INIT_PRE(_bar, _count, _resizable) 128 #define VALGRIND_HG_BARRIER_WAIT_PRE(_bar) 129 #define VALGRIND_HG_BARRIER_RESIZE_PRE(_bar, _newcount) 130 #define VALGRIND_HG_BARRIER_DESTROY_PRE(_bar) 131 #define VALGRIND_HG_CLEAN_MEMORY(_qzz_start, _qzz_len) 132 #define VALGRIND_HG_CLEAN_MEMORY_HEAPBLOCK(_qzz_blockstart) 133 #define VALGRIND_HG_DISABLE_CHECKING(_qzz_start, _qzz_len) 134 #define VALGRIND_HG_ENABLE_CHECKING(_qzz_start, _qzz_len) 136 #define DRD_GET_VALGRIND_THREADID 137 #define DRD_GET_DRD_THREADID 138 #define DRD_IGNORE_VAR(x) 139 #define DRD_STOP_IGNORING_VAR(x) 140 #define DRD_TRACE_VAR(x) 142 #define ANNOTATE_HAPPENS_BEFORE(_obj) 143 #define ANNOTATE_HAPPENS_AFTER(_obj) 145 #define ANNOTATE_RWLOCK_CREATE(rwlock) 146 #define ANNOTATE_RWLOCK_DESTROY(rwlock) 147 #define ANNOTATE_RWLOCK_ACQUIRED(rwlock, is_w) 148 #define ANNOTATE_READERLOCK_ACQUIRED(rwlock) 149 #define ANNOTATE_WRITERLOCK_ACQUIRED(rwlock) 150 #define ANNOTATE_RWLOCK_RELEASED(rwlock, is_w) 151 #define ANNOTATE_READERLOCK_RELEASED(rwlock) 152 #define ANNOTATE_WRITERLOCK_RELEASED(rwlock) 154 #define ANNOTATE_BARRIER_INIT(barrier, count, reinitialization_allowed) 155 #define ANNOTATE_BARRIER_DESTROY(barrier) 156 #define ANNOTATE_BARRIER_WAIT_BEFORE(barrier) 157 #define ANNOTATE_BARRIER_WAIT_AFTER(barrier) 159 #define ANNOTATE_BENIGN_RACE(_a, _b) 160 #define ANNOTATE_BENIGN_RACE_SIZED(_a, _b, _c) 162 #define ANNOTATE_IGNORE_READS_BEGIN() 163 #define ANNOTATE_IGNORE_READS_END() 164 #define ANNOTATE_IGNORE_WRITES_BEGIN() 165 #define ANNOTATE_IGNORE_WRITES_END() 166 #define ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN() 167 #define ANNOTATE_IGNORE_READS_AND_WRITES_END() 169 #define ANNOTATE_NEW_MEMORY(_addr, _size) 170 #define ANNOTATE_TRACE_MEMORY(_addr) 171 #define ANNOTATE_THREAD_NAME(_name) 173 #define DRD_xmalloc(_nb) xmalloc(_nb) 174 #define DRD_xcalloc(_nmemb, _size) xcalloc(_nmemb, _size) 175 #define DRD_xrealloc(_ptr, _size) xrealloc(_ptr, _size) 176 #define DRD_xstrdup(_str) xstrdup(_str) #define DRD_xcalloc(_nmemb, _size)
#define DRD_xrealloc(_ptr, _size)
#define DRD_xstrdup(_str)
#define ANNOTATE_BENIGN_RACE_SIZED(_a, _b, _c)