1 #ifndef JEMALLOC_INTERNAL_MACROS_H 2 #define JEMALLOC_INTERNAL_MACROS_H 3 4 #ifdef JEMALLOC_DEBUG 5 # define JEMALLOC_ALWAYS_INLINE static inline 6 #else 7 # define JEMALLOC_ALWAYS_INLINE JEMALLOC_ATTR(always_inline) static inline 8 #endif 9 #ifdef _MSC_VER 10 # define inline _inline 11 #endif 12 13 #define UNUSED JEMALLOC_ATTR(unused) 14 15 #define ZU(z) ((size_t)z) 16 #define ZD(z) ((ssize_t)z) 17 #define QU(q) ((uint64_t)q) 18 #define QD(q) ((int64_t)q) 19 20 #define KZU(z) ZU(z##ULL) 21 #define KZD(z) ZD(z##LL) 22 #define KQU(q) QU(q##ULL) 23 #define KQD(q) QI(q##LL) 24 25 #ifndef __DECONST 26 # define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var)) 27 #endif 28 29 #if !defined(JEMALLOC_HAS_RESTRICT) || defined(__cplusplus) 30 # define restrict 31 #endif 32 33 /* Various function pointers are statick and immutable except during testing. */ 34 #ifdef JEMALLOC_JET 35 # define JET_MUTABLE 36 #else 37 # define JET_MUTABLE const 38 #endif 39 40 #define JEMALLOC_VA_ARGS_HEAD(head, ...) head 41 #define JEMALLOC_VA_ARGS_TAIL(head, ...) __VA_ARGS__ 42 43 #endif /* JEMALLOC_INTERNAL_MACROS_H */ 44