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) 42286866Sjasone#define ZI(z) ((ssize_t)z) 43261071Sjasone#define QU(q) ((uint64_t)q) 44261071Sjasone#define QI(q) ((int64_t)q) 45261071Sjasone 46286866Sjasone#define KZU(z) ZU(z##ULL) 47286866Sjasone#define KZI(z) ZI(z##LL) 48286866Sjasone#define KQU(q) QU(q##ULL) 49286866Sjasone#define KQI(q) QI(q##LL) 50286866Sjasone 51261071Sjasone#ifndef __DECONST 52261071Sjasone# define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var)) 53261071Sjasone#endif 54262521Sjasone 55262521Sjasone#ifndef JEMALLOC_HAS_RESTRICT 56262521Sjasone# define restrict 57262521Sjasone#endif 58