]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_macros.h
MFV r353619: 9691 fat zap should prefetch when iterating
[FreeBSD/FreeBSD.git] / contrib / jemalloc / include / jemalloc / internal / jemalloc_internal_macros.h
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 */