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