⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generalize.h

📁 一个检测内存泄漏情况的工具
💻 H
📖 第 1 页 / 共 3 页
字号:
#  endif#  if !defined(AO_HAVE_test_and_set_write)#    define AO_test_and_set_write(addr) \  	 AO_test_and_set_full(addr)#    define AO_HAVE_test_and_set_write#  endif#  if !defined(AO_HAVE_test_and_set_read)#    define AO_test_and_set_read(addr) \  	 AO_test_and_set_full(addr)#    define AO_HAVE_test_and_set_read#  endif#endif /* AO_HAVE_test_and_set_full */#if !defined(AO_HAVE_test_and_set) && \    defined(AO_HAVE_test_and_set_release)#  define AO_test_and_set(addr) \  	AO_test_and_set_release(addr)#  define AO_HAVE_test_and_set#endif#if !defined(AO_HAVE_test_and_set) && \    defined(AO_HAVE_test_and_set_acquire)#  define AO_test_and_set(addr) \  	AO_test_and_set_acquire(addr)#  define AO_HAVE_test_and_set#endif#if !defined(AO_HAVE_test_and_set) && \    defined(AO_HAVE_test_and_set_write)#  define AO_test_and_set(addr) \  	AO_test_and_set_write(addr)#  define AO_HAVE_test_and_set#endif#if !defined(AO_HAVE_test_and_set) && \    defined(AO_HAVE_test_and_set_read)#  define AO_test_and_set(addr) \  	AO_test_and_set_read(addr)#  define AO_HAVE_test_and_set#endif#if defined(AO_HAVE_test_and_set_acquire) &&\    defined(AO_HAVE_nop_full) && \    !defined(AO_HAVE_test_and_set_full)#  define AO_test_and_set_full(addr) \  	(AO_nop_full(), AO_test_and_set_acquire(addr))#  define AO_HAVE_test_and_set_full#endif#if !defined(AO_HAVE_test_and_set_release_write) && \    defined(AO_HAVE_test_and_set_write)#  define AO_test_and_set_release_write(addr) \  	AO_test_and_set_write(addr)#  define AO_HAVE_test_and_set_release_write#endif#if !defined(AO_HAVE_test_and_set_release_write) && \    defined(AO_HAVE_test_and_set_release)#  define AO_test_and_set_release_write(addr) \  	AO_test_and_set_release(addr)#  define AO_HAVE_test_and_set_release_write#endif#if !defined(AO_HAVE_test_and_set_acquire_read) && \    defined(AO_HAVE_test_and_set_read)#  define AO_test_and_set_acquire_read(addr) \  	AO_test_and_set_read(addr)#  define AO_HAVE_test_and_set_acquire_read#endif#if !defined(AO_HAVE_test_and_set_acquire_read) && \    defined(AO_HAVE_test_and_set_acquire)#  define AO_test_and_set_acquire_read(addr) \  	AO_test_and_set_acquire(addr)#  define AO_HAVE_test_and_set_acquire_read#endif#ifdef AO_NO_DD_ORDERING#  if defined(AO_HAVE_test_and_set_acquire_read)#    define AO_test_and_set_dd_acquire_read(addr) \	AO_test_and_set_acquire_read(addr)#    define AO_HAVE_test_and_set_dd_acquire_read#  endif#else#  if defined(AO_HAVE_test_and_set)#    define AO_test_and_set_dd_acquire_read(addr) AO_test_and_set(addr)#    define AO_HAVE_test_and_set_dd_acquire_read#  endif#endif/* Compare_and_swap */#if defined(AO_HAVE_compare_and_swap) && defined(AO_HAVE_nop_full)\    && !defined(AO_HAVE_compare_and_swap_acquire)   AO_INLINE int   AO_compare_and_swap_acquire(volatile AO_t *addr, AO_t old, AO_t new_val)   {     int result = AO_compare_and_swap(addr, old, new_val);     AO_nop_full();     return result;   }#  define AO_HAVE_compare_and_swap_acquire#endif#if defined(AO_HAVE_compare_and_swap) && defined(AO_HAVE_nop_full)\    && !defined(AO_HAVE_compare_and_swap_release)#  define AO_compare_and_swap_release(addr, old, new_val) \  	(AO_nop_full(), AO_compare_and_swap(addr, old, new_val))#  define AO_HAVE_compare_and_swap_release#endif#if defined(AO_HAVE_compare_and_swap_full)#  if !defined(AO_HAVE_compare_and_swap_release)#    define AO_compare_and_swap_release(addr, old, new_val) \  	 AO_compare_and_swap_full(addr, old, new_val)#    define AO_HAVE_compare_and_swap_release#  endif#  if !defined(AO_HAVE_compare_and_swap_acquire)#    define AO_compare_and_swap_acquire(addr, old, new_val) \  	 AO_compare_and_swap_full(addr, old, new_val)#    define AO_HAVE_compare_and_swap_acquire#  endif#  if !defined(AO_HAVE_compare_and_swap_write)#    define AO_compare_and_swap_write(addr, old, new_val) \  	 AO_compare_and_swap_full(addr, old, new_val)#    define AO_HAVE_compare_and_swap_write#  endif#  if !defined(AO_HAVE_compare_and_swap_read)#    define AO_compare_and_swap_read(addr, old, new_val) \  	 AO_compare_and_swap_full(addr, old, new_val)#    define AO_HAVE_compare_and_swap_read#  endif#endif /* AO_HAVE_compare_and_swap_full */#if !defined(AO_HAVE_compare_and_swap) && \    defined(AO_HAVE_compare_and_swap_release)#  define AO_compare_and_swap(addr, old, new_val) \  	AO_compare_and_swap_release(addr, old, new_val)#  define AO_HAVE_compare_and_swap#endif#if !defined(AO_HAVE_compare_and_swap) && \    defined(AO_HAVE_compare_and_swap_acquire)#  define AO_compare_and_swap(addr, old, new_val) \  	AO_compare_and_swap_acquire(addr, old, new_val)#  define AO_HAVE_compare_and_swap#endif#if !defined(AO_HAVE_compare_and_swap) && \    defined(AO_HAVE_compare_and_swap_write)#  define AO_compare_and_swap(addr, old, new_val) \  	AO_compare_and_swap_write(addr, old, new_val)#  define AO_HAVE_compare_and_swap#endif#if !defined(AO_HAVE_compare_and_swap) && \    defined(AO_HAVE_compare_and_swap_read)#  define AO_compare_and_swap(addr, old, new_val) \  	AO_compare_and_swap_read(addr, old, new_val)#  define AO_HAVE_compare_and_swap#endif#if defined(AO_HAVE_compare_and_swap_acquire) &&\    defined(AO_HAVE_nop_full) && \    !defined(AO_HAVE_compare_and_swap_full)#  define AO_compare_and_swap_full(addr, old, new_val) \  	(AO_nop_full(), AO_compare_and_swap_acquire(addr, old, new_val))#  define AO_HAVE_compare_and_swap_full#endif#if !defined(AO_HAVE_compare_and_swap_release_write) && \    defined(AO_HAVE_compare_and_swap_write)#  define AO_compare_and_swap_release_write(addr, old, new_val) \  	AO_compare_and_swap_write(addr, old, new_val)#  define AO_HAVE_compare_and_swap_release_write#endif#if !defined(AO_HAVE_compare_and_swap_release_write) && \    defined(AO_HAVE_compare_and_swap_release)#  define AO_compare_and_swap_release_write(addr, old, new_val) \  	AO_compare_and_swap_release(addr, old, new_val)#  define AO_HAVE_compare_and_swap_release_write#endif#if !defined(AO_HAVE_compare_and_swap_acquire_read) && \    defined(AO_HAVE_compare_and_swap_read)#  define AO_compare_and_swap_acquire_read(addr, old, new_val) \  	AO_compare_and_swap_read(addr, old, new_val)#  define AO_HAVE_compare_and_swap_acquire_read#endif#if !defined(AO_HAVE_compare_and_swap_acquire_read) && \    defined(AO_HAVE_compare_and_swap_acquire)#  define AO_compare_and_swap_acquire_read(addr, old, new_val) \  	AO_compare_and_swap_acquire(addr, old, new_val)#  define AO_HAVE_compare_and_swap_acquire_read#endif#ifdef AO_NO_DD_ORDERING#  if defined(AO_HAVE_compare_and_swap_acquire_read)#    define AO_compare_and_swap_dd_acquire_read(addr, old, new_val) \	AO_compare_and_swap_acquire_read(addr, old, new_val)#    define AO_HAVE_compare_and_swap_dd_acquire_read#  endif#else#  if defined(AO_HAVE_compare_and_swap)#    define AO_compare_and_swap_dd_acquire_read(addr, old, new_val) \	AO_compare_and_swap(addr, old, new_val)#    define AO_HAVE_compare_and_swap_dd_acquire_read#  endif#endif#include "generalize-small.h"/* Compare_double_and_swap_double */#if defined(AO_HAVE_compare_double_and_swap_double) && defined(AO_HAVE_nop_full)\    && !defined(AO_HAVE_compare_double_and_swap_double_acquire)   AO_INLINE int   AO_compare_double_and_swap_double_acquire(volatile AO_double_t *addr,		   		      	     AO_t o1, AO_t o2,				             AO_t n1, AO_t n2)   {     int result = AO_compare_double_and_swap_double(addr, o1, o2, n1, n2);     AO_nop_full();     return result;   }#  define AO_HAVE_compare_double_and_swap_double_acquire#endif#if defined(AO_HAVE_compare_double_and_swap_double) \    && defined(AO_HAVE_nop_full)\    && !defined(AO_HAVE_compare_double_and_swap_double_release)#  define AO_compare_double_and_swap_double_release(addr, o1, o2, n1, n2) \  	(AO_nop_full(), AO_compare_double_and_swap_double(addr, o1, o2, n1, n2))#  define AO_HAVE_compare_double_and_swap_double_release#endif#if defined(AO_HAVE_compare_double_and_swap_double_full)#  if !defined(AO_HAVE_compare_double_and_swap_double_release)#    define AO_compare_double_and_swap_double_release(addr, o1, o2, n1, n2) \  	 AO_compare_double_and_swap_double_full(addr, o1, o2, n1, n2)#    define AO_HAVE_compare_double_and_swap_double_release#  endif#  if !defined(AO_HAVE_compare_double_and_swap_double_acquire)#    define AO_compare_double_and_swap_double_acquire(addr, o1, o2, n1, n2) \  	 AO_compare_double_and_swap_double_full(addr, o1, o2, n1, n2)#    define AO_HAVE_compare_double_and_swap_double_acquire#  endif#  if !defined(AO_HAVE_compare_double_and_swap_double_write)#    define AO_compare_double_and_swap_double_write(addr, o1, o2, n1, n2) \  	 AO_compare_double_and_swap_double_full(addr, o1, o2, n1, n2)#    define AO_HAVE_compare_double_and_swap_double_write#  endif#  if !defined(AO_HAVE_compare_double_and_swap_double_read)#    define AO_compare_double_and_swap_double_read(addr, o1, o2, n1, n2) \  	 AO_compare_double_and_swap_double_full(addr, o1, o2, n1, n2)#    define AO_HAVE_compare_double_and_swap_double_read#  endif#endif /* AO_HAVE_compare_double_and_swap_double_full */#if !defined(AO_HAVE_compare_double_and_swap_double) && \    defined(AO_HAVE_compare_double_and_swap_double_release)#  define AO_compare_double_and_swap_double(addr, o1, o2, n1, n2) \  	AO_compare_double_and_swap_double_release(addr, o1, o2, n1, n2)#  define AO_HAVE_compare_double_and_swap_double#endif#if !defined(AO_HAVE_compare_double_and_swap_double) && \    defined(AO_HAVE_compare_double_and_swap_double_acquire)#  define AO_compare_double_and_swap_double(addr, o1, o2, n1, n2) \  	AO_compare_double_and_swap_double_acquire(addr, o1, o2, n1, n2)#  define AO_HAVE_compare_double_and_swap_double#endif#if !defined(AO_HAVE_compare_double_and_swap_double) && \    defined(AO_HAVE_compare_double_and_swap_double_write)#  define AO_compare_double_and_swap_double(addr, o1, o2, n1, n2) \  	AO_compare_double_and_swap_double_write(addr, o1, o2, n1, n2)#  define AO_HAVE_compare_double_and_swap_double#endif#if !defined(AO_HAVE_compare_double_and_swap_double) && \    defined(AO_HAVE_compare_double_and_swap_double_read)#  define AO_compare_double_and_swap_double(addr, o1, o2, n1, n2) \  	AO_compare_double_and_swap_double_read(addr, o1, o2, n1, n2)#  define AO_HAVE_compare_double_and_swap_double#endif#if defined(AO_HAVE_compare_double_and_swap_double_acquire) &&\    defined(AO_HAVE_nop_full) && \    !defined(AO_HAVE_compare_double_and_swap_double_full)#  define AO_compare_double_and_swap_double_full(addr, o1, o2, n1, n2) \  	(AO_nop_full(), AO_compare_double_and_swap_double_acquire(addr, o1, o2, n1, n2))#  define AO_HAVE_compare_double_and_swap_double_full#endif#if !defined(AO_HAVE_compare_double_and_swap_double_release_write) && \    defined(AO_HAVE_compare_double_and_swap_double_write)#  define AO_compare_double_and_swap_double_release_write(addr, o1, o2, n1, n2) \  	AO_compare_double_and_swap_double_write(addr, o1, o2, n1, n2)#  define AO_HAVE_compare_double_and_swap_double_release_write#endif#if !defined(AO_HAVE_compare_double_and_swap_double_release_write) && \    defined(AO_HAVE_compare_double_and_swap_double_release)#  define AO_compare_double_and_swap_double_release_write(addr, o1, o2, n1, n2) \  	AO_compare_double_and_swap_double_release(addr, o1, o2, n1, n2)#  define AO_HAVE_compare_double_and_swap_double_release_write#endif#if !defined(AO_HAVE_compare_double_and_swap_double_acquire_read) && \    defined(AO_HAVE_compare_double_and_swap_double_read)#  define AO_compare_double_and_swap_double_acquire_read(addr, o1, o2, n1, n2) \  	AO_compare_double_and_swap_double_read(addr, o1, o2, n1, n2)#  define AO_HAVE_compare_double_and_swap_double_acquire_read#endif#if !defined(AO_HAVE_compare_double_and_swap_double_acquire_read) && \    defined(AO_HAVE_compare_double_and_swap_double_acquire)#  define AO_compare_double_and_swap_double_acquire_read(addr, o1, o2, n1, n2) \  	AO_compare_double_and_swap_double_acquire(addr, o1, o2, n1, n2)#  define AO_HAVE_compare_double_and_swap_double_acquire_read#endif#ifdef AO_NO_DD_ORDERING#  if defined(AO_HAVE_compare_double_and_swap_double_acquire_read)#    define AO_compare_double_and_swap_double_dd_acquire_read(addr, o1, o2, n1, n2) \	AO_compare_double_and_swap_double_acquire_read(addr, o1, o2, n1, n2)#    define AO_HAVE_compare_double_and_swap_double_dd_acquire_read#  endif#else#  if defined(AO_HAVE_compare_double_and_swap_double)#    define AO_compare_double_and_swap_double_dd_acquire_read(addr, o1, o2, n1, n2) \	AO_compare_double_and_swap_double(addr, o1, o2, n1, n2)#    define AO_HAVE_compare_double_and_swap_double_dd_acquire_read#  endif#endif/* Compare_and_swap_double */#if defined(AO_HAVE_compare_and_swap_double) && defined(AO_HAVE_nop_full)\    && !defined(AO_HAVE_compare_and_swap_double_acquire)   AO_INLINE int   AO_compare_and_swap_double_acquire(volatile AO_double_t *addr,		   		      	     AO_t o1, AO_t o2,				             AO_t n1, AO_t n2)   {     int result = AO_compare_and_swap_double(addr, o1, n1, n2);     AO_nop_full();     return result;   }#  define AO_HAVE_compare_and_swap_double_acquire#endif#if defined(AO_HAVE_compare_and_swap_double) \    && defined(AO_HAVE_nop_full)\    && !defined(AO_HAVE_compare_and_swap_double_release)#  define AO_compare_and_swap_double_release(addr, o1, n1, n2) \  	(AO_nop_full(), AO_compare_and_swap_double(addr, o1, n1, n2))#  define AO_HAVE_compare_and_swap_double_release#endif#if defined(AO_HAVE_compare_and_swap_double_full)#  if !defined(AO_HAVE_compare_and_swap_double_release)#    define AO_compare_and_swap_double_release(addr, o1, n1, n2) \  	 AO_compare_and_swap_double_full(addr, o1, n1, n2)#    define AO_HAVE_compare_and_swap_double_release#  endif#  if !defined(AO_HAVE_compare_and_swap_double_acquire)#    define AO_compare_and_swap_double_acquire(addr, o1, n1, n2) \  	 AO_compare_and_swap_double_full(addr, o1, n1, n2)#    define AO_HAVE_compare_and_swap_double_acquire#  endif#  if !defined(AO_HAVE_compare_and_swap_double_write)#    define AO_compare_and_swap_double_write(addr, o1, n1, n2) \  	 AO_compare_and_swap_double_full(addr, o1, n1, n2)#    define AO_HAVE_compare_and_swap_double_write#  endif#  if !defined(AO_HAVE_compare_and_swap_double_read)#    define AO_compare_and_swap_double_read(addr, o1, n1, n2) \  	 AO_compare_and_swap_double_full(addr, o1, n1, n2)#    define AO_HAVE_compare_and_swap_double_read#  endif#endif /* AO_HAVE_compare_and_swap_double_full */#if !defined(AO_HAVE_compare_and_swap_double) && \    defined(AO_HAVE_compare_and_swap_double_release)#  define AO_compare_and_swap_double(addr, o1, n1, n2) \  	AO_compare_and_swap_double_release(addr, o1, n1, n2)#  define AO_HAVE_compare_and_swap_double#endif#if !defined(AO_HAVE_compare_and_swap_double) && \    defined(AO_HAVE_compare_and_swap_double_acquire)#  define AO_compare_and_swap_double(addr, o1, n1, n2) \  	AO_compare_and_swap_double_acquire(addr, o1, n1, n2)#  define AO_HAVE_compare_and_swap_double#endif#if !defined(AO_HAVE_compare_and_swap_double) && \    defined(AO_HAVE_compare_and_swap_double_write)#  define AO_compare_and_swap_double(addr, o1, n1, n2) \  	AO_compare_and_swap_double_write(addr, o1, n1, n2)#  define AO_HAVE_compare_and_swap_double#endif#if !defined(AO_HAVE_compare_and_swap_double) && \    defined(AO_HAVE_compare_and_swap_double_read)#  define AO_compare_and_swap_double(addr, o1, n1, n2) \  	AO_compare_and_swap_double_read(addr, o1, n1, n2)#  define AO_HAVE_compare_and_swap_double#endif#if defined(AO_HAVE_compare_and_swap_double_acquire) &&\    defined(AO_HAVE_nop_full) && \    !defined(AO_HAVE_compare_and_swap_double_full)#  define AO_compare_and_swap_double_full(addr, o1, n1, n2) \  	(AO_nop_full(), AO_compare_and_swap_double_acquire(addr, o1, n1, n2))#  define AO_HAVE_compare_and_swap_double_full#endif#if !defined(AO_HAVE_compare_and_swap_double_release_write) && \    defined(AO_HAVE_compare_and_swap_double_write)#  define AO_compare_and_swap_double_release_write(addr, o1, n1, n2) \  	AO_compare_and_swap_double_write(addr, o1, n1, n2)#  define AO_HAVE_compare_and_swap_double_release_write#endif#if !defined(AO_HAVE_compare_and_swap_double_release_write) && \    defined(AO_HAVE_compare_and_swap_double_release)#  define AO_compare_and_swap_double_release_write(addr, o1, n1, n2) \  	AO_compare_and_swap_double_release(addr, o1, n1, n2)#  define AO_HAVE_compare_and_swap_double_release_write#endif#if !defined(AO_HAVE_compare_and_swap_double_acquire_read) && \    defined(AO_HAVE_compare_and_swap_double_read)#  define AO_compare_and_swap_double_acquire_read(addr, o1, n1, n2) \  	AO_compare_and_swap_double_read(addr, o1, n1, n2)#  define AO_HAVE_compare_and_swap_double_acquire_read#endif#if !defined(AO_HAVE_compare_and_swap_double_acquire_read) && \    defined(AO_HAVE_compare_and_swap_double_acquire)#  define AO_compare_and_swap_double_acquire_read(addr, o1, n1, n2) \  	AO_compare_and_swap_double_acquire(addr, o1, n1, n2)#  define AO_HAVE_compare_and_swap_double_acquire_read#endif#ifdef AO_NO_DD_ORDERING#  if defined(AO_HAVE_compare_and_swap_double_acquire_read)#    define AO_compare_and_swap_double_dd_acquire_read(addr, o1, n1, n2) \	AO_compare_and_swap_double_acquire_read(addr, o1, n1, n2)#    define AO_HAVE_compare_and_swap_double_dd_acquire_read#  endif#else#  if defined(AO_HAVE_compare_and_swap_double)#    define AO_compare_and_swap_double_dd_acquire_read(addr, o1, n1, n2) \	AO_compare_and_swap_double(addr, o1, n1, n2)#    define AO_HAVE_compare_and_swap_double_dd_acquire_read#  endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -