]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/jemalloc/include/jemalloc/internal/jemalloc_preamble.h
Update jemalloc to version 5.1.0.
[FreeBSD/FreeBSD.git] / contrib / jemalloc / include / jemalloc / internal / jemalloc_preamble.h
1 #ifndef JEMALLOC_PREAMBLE_H
2 #define JEMALLOC_PREAMBLE_H
3
4 #include "jemalloc_internal_defs.h"
5 #include "jemalloc/internal/jemalloc_internal_decls.h"
6
7 #ifdef JEMALLOC_UTRACE
8 #include <sys/ktrace.h>
9 #endif
10
11 #include "un-namespace.h"
12 #include "libc_private.h"
13
14 #define JEMALLOC_NO_DEMANGLE
15 #ifdef JEMALLOC_JET
16 #  undef JEMALLOC_IS_MALLOC
17 #  define JEMALLOC_N(n) jet_##n
18 #  include "jemalloc/internal/public_namespace.h"
19 #  define JEMALLOC_NO_RENAME
20 #  include "../jemalloc.h"
21 #  undef JEMALLOC_NO_RENAME
22 #else
23 #  define JEMALLOC_N(n) __je_##n
24 #  include "../jemalloc.h"
25 #endif
26
27 #if (defined(JEMALLOC_OSATOMIC) || defined(JEMALLOC_OSSPIN))
28 #include <libkern/OSAtomic.h>
29 #endif
30
31 #ifdef JEMALLOC_ZONE
32 #include <mach/mach_error.h>
33 #include <mach/mach_init.h>
34 #include <mach/vm_map.h>
35 #endif
36
37 #include "jemalloc/internal/jemalloc_internal_macros.h"
38
39 /*
40  * Note that the ordering matters here; the hook itself is name-mangled.  We
41  * want the inclusion of hooks to happen early, so that we hook as much as
42  * possible.
43  */
44 #ifndef JEMALLOC_NO_PRIVATE_NAMESPACE
45 #  ifndef JEMALLOC_JET
46 #    include "jemalloc/internal/private_namespace.h"
47 #  else
48 #    include "jemalloc/internal/private_namespace_jet.h"
49 #  endif
50 #endif
51 #include "jemalloc/internal/hooks.h"
52
53 #ifdef JEMALLOC_DEFINE_MADVISE_FREE
54 #  define JEMALLOC_MADV_FREE 8
55 #endif
56
57 static const bool config_debug =
58 #ifdef JEMALLOC_DEBUG
59     true
60 #else
61     false
62 #endif
63     ;
64 static const bool have_dss =
65 #ifdef JEMALLOC_DSS
66     true
67 #else
68     false
69 #endif
70     ;
71 static const bool have_madvise_huge =
72 #ifdef JEMALLOC_HAVE_MADVISE_HUGE
73     true
74 #else
75     false
76 #endif
77     ;
78 static const bool config_fill =
79 #ifdef JEMALLOC_FILL
80     true
81 #else
82     false
83 #endif
84     ;
85 static const bool config_lazy_lock = true;
86 static const char * const config_malloc_conf = JEMALLOC_CONFIG_MALLOC_CONF;
87 static const bool config_prof =
88 #ifdef JEMALLOC_PROF
89     true
90 #else
91     false
92 #endif
93     ;
94 static const bool config_prof_libgcc =
95 #ifdef JEMALLOC_PROF_LIBGCC
96     true
97 #else
98     false
99 #endif
100     ;
101 static const bool config_prof_libunwind =
102 #ifdef JEMALLOC_PROF_LIBUNWIND
103     true
104 #else
105     false
106 #endif
107     ;
108 static const bool maps_coalesce =
109 #ifdef JEMALLOC_MAPS_COALESCE
110     true
111 #else
112     false
113 #endif
114     ;
115 static const bool config_stats =
116 #ifdef JEMALLOC_STATS
117     true
118 #else
119     false
120 #endif
121     ;
122 static const bool config_tls =
123 #ifdef JEMALLOC_TLS
124     true
125 #else
126     false
127 #endif
128     ;
129 static const bool config_utrace =
130 #ifdef JEMALLOC_UTRACE
131     true
132 #else
133     false
134 #endif
135     ;
136 static const bool config_xmalloc =
137 #ifdef JEMALLOC_XMALLOC
138     true
139 #else
140     false
141 #endif
142     ;
143 static const bool config_cache_oblivious =
144 #ifdef JEMALLOC_CACHE_OBLIVIOUS
145     true
146 #else
147     false
148 #endif
149     ;
150 /*
151  * Undocumented, for jemalloc development use only at the moment.  See the note
152  * in jemalloc/internal/log.h.
153  */
154 static const bool config_log =
155 #ifdef JEMALLOC_LOG
156     true
157 #else
158     false
159 #endif
160     ;
161 #ifdef JEMALLOC_HAVE_SCHED_GETCPU
162 /* Currently percpu_arena depends on sched_getcpu. */
163 #define JEMALLOC_PERCPU_ARENA
164 #endif
165 static const bool have_percpu_arena =
166 #ifdef JEMALLOC_PERCPU_ARENA
167     true
168 #else
169     false
170 #endif
171     ;
172 /*
173  * Undocumented, and not recommended; the application should take full
174  * responsibility for tracking provenance.
175  */
176 static const bool force_ivsalloc =
177 #ifdef JEMALLOC_FORCE_IVSALLOC
178     true
179 #else
180     false
181 #endif
182     ;
183 static const bool have_background_thread =
184 #ifdef JEMALLOC_BACKGROUND_THREAD
185     true
186 #else
187     false
188 #endif
189     ;
190
191 #endif /* JEMALLOC_PREAMBLE_H */