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