jemalloc_internal_macros.h revision 261071
1261071Sjasone/* 2261071Sjasone * JEMALLOC_ALWAYS_INLINE and JEMALLOC_INLINE are used within header files for 3261071Sjasone * functions that are static inline functions if inlining is enabled, and 4261071Sjasone * single-definition library-private functions if inlining is disabled. 5261071Sjasone * 6261071Sjasone * JEMALLOC_ALWAYS_INLINE_C and JEMALLOC_INLINE_C are for use in .c files, in 7261071Sjasone * which case the denoted functions are always static, regardless of whether 8261071Sjasone * inlining is enabled. 9261071Sjasone */ 10261071Sjasone#if defined(JEMALLOC_DEBUG) || defined(JEMALLOC_CODE_COVERAGE) 11261071Sjasone /* Disable inlining to make debugging/profiling easier. */ 12261071Sjasone# define JEMALLOC_ALWAYS_INLINE 13261071Sjasone# define JEMALLOC_ALWAYS_INLINE_C static 14261071Sjasone# define JEMALLOC_INLINE 15261071Sjasone# define JEMALLOC_INLINE_C static 16261071Sjasone# define inline 17261071Sjasone#else 18261071Sjasone# define JEMALLOC_ENABLE_INLINE 19261071Sjasone# ifdef JEMALLOC_HAVE_ATTR 20261071Sjasone# define JEMALLOC_ALWAYS_INLINE \ 21261071Sjasone static inline JEMALLOC_ATTR(unused) JEMALLOC_ATTR(always_inline) 22261071Sjasone# define JEMALLOC_ALWAYS_INLINE_C \ 23261071Sjasone static inline JEMALLOC_ATTR(always_inline) 24261071Sjasone# else 25261071Sjasone# define JEMALLOC_ALWAYS_INLINE static inline 26261071Sjasone# define JEMALLOC_ALWAYS_INLINE_C static inline 27261071Sjasone# endif 28261071Sjasone# define JEMALLOC_INLINE static inline 29261071Sjasone# define JEMALLOC_INLINE_C static inline 30261071Sjasone# ifdef _MSC_VER 31261071Sjasone# define inline _inline 32261071Sjasone# endif 33261071Sjasone#endif 34261071Sjasone 35261071Sjasone#ifdef JEMALLOC_CC_SILENCE 36261071Sjasone# define UNUSED JEMALLOC_ATTR(unused) 37261071Sjasone#else 38261071Sjasone# define UNUSED 39261071Sjasone#endif 40261071Sjasone 41261071Sjasone#define ZU(z) ((size_t)z) 42261071Sjasone#define QU(q) ((uint64_t)q) 43261071Sjasone#define QI(q) ((int64_t)q) 44261071Sjasone 45261071Sjasone#ifndef __DECONST 46261071Sjasone# define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var)) 47261071Sjasone#endif 48