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