]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
MFV r365636: libarchive: import fix for WARNS=6 builds in testing bits
[FreeBSD/FreeBSD.git] / contrib / jemalloc / include / jemalloc / jemalloc_FreeBSD.h
1 /*
2  * Override settings that were generated in jemalloc_defs.h as necessary.
3  */
4
5 #undef JEMALLOC_OVERRIDE_VALLOC
6
7 #ifndef MALLOC_PRODUCTION
8 #define JEMALLOC_DEBUG
9 #endif
10
11 #undef JEMALLOC_DSS
12
13 #undef JEMALLOC_BACKGROUND_THREAD
14
15 /*
16  * The following are architecture-dependent, so conditionally define them for
17  * each supported architecture.
18  */
19 #undef JEMALLOC_TLS_MODEL
20 #undef LG_PAGE
21 #undef LG_VADDR
22 #undef LG_SIZEOF_PTR
23 #undef LG_SIZEOF_INT
24 #undef LG_SIZEOF_LONG
25 #undef LG_SIZEOF_INTMAX_T
26
27 #ifdef __i386__
28 #  define LG_VADDR              32
29 #  define LG_SIZEOF_PTR         2
30 #  define JEMALLOC_TLS_MODEL    __attribute__((tls_model("initial-exec")))
31 #endif
32 #ifdef __ia64__
33 #  define LG_VADDR              64
34 #  define LG_SIZEOF_PTR         3
35 #endif
36 #ifdef __sparc64__
37 #  define LG_VADDR              64
38 #  define LG_SIZEOF_PTR         3
39 #  define JEMALLOC_TLS_MODEL    __attribute__((tls_model("initial-exec")))
40 #endif
41 #ifdef __amd64__
42 #  define LG_VADDR              48
43 #  define LG_SIZEOF_PTR         3
44 #  define JEMALLOC_TLS_MODEL    __attribute__((tls_model("initial-exec")))
45 #endif
46 #ifdef __arm__
47 #  define LG_VADDR              32
48 #  define LG_SIZEOF_PTR         2
49 #endif
50 #ifdef __aarch64__
51 #  define LG_VADDR              48
52 #  define LG_SIZEOF_PTR         3
53 #endif
54 #ifdef __mips__
55 #ifdef __mips_n64
56 #  define LG_VADDR              64
57 #  define LG_SIZEOF_PTR         3
58 #else
59 #  define LG_VADDR              32
60 #  define LG_SIZEOF_PTR         2
61 #endif
62 #endif
63 #ifdef __powerpc64__
64 #  define LG_VADDR              64
65 #  define LG_SIZEOF_PTR         3
66 #elif defined(__powerpc__)
67 #  define LG_VADDR              32
68 #  define LG_SIZEOF_PTR         2
69 #endif
70 #ifdef __riscv
71 #  define LG_VADDR              48
72 #  define LG_SIZEOF_PTR         3
73 #endif
74
75 #if LG_VADDR > 32
76 #  define JEMALLOC_RETAIN
77 #endif
78
79 #ifndef JEMALLOC_TLS_MODEL
80 #  define JEMALLOC_TLS_MODEL    /* Default. */
81 #endif
82
83 #define LG_PAGE                 PAGE_SHIFT
84 #define LG_SIZEOF_INT           2
85 #define LG_SIZEOF_LONG          LG_SIZEOF_PTR
86 #define LG_SIZEOF_INTMAX_T      3
87
88 #undef CPU_SPINWAIT
89 #include <machine/cpu.h>
90 #include <machine/cpufunc.h>
91 #define CPU_SPINWAIT            cpu_spinwait()
92
93 /* Disable lazy-lock machinery, mangle isthreaded, and adjust its type. */
94 #undef JEMALLOC_LAZY_LOCK
95 extern int __isthreaded;
96 #define isthreaded              ((bool)__isthreaded)
97
98 /* Mangle. */
99 #undef je_malloc
100 #undef je_calloc
101 #undef je_posix_memalign
102 #undef je_aligned_alloc
103 #undef je_realloc
104 #undef je_free
105 #undef je_malloc_usable_size
106 #undef je_mallocx
107 #undef je_rallocx
108 #undef je_xallocx
109 #undef je_sallocx
110 #undef je_dallocx
111 #undef je_sdallocx
112 #undef je_nallocx
113 #undef je_mallctl
114 #undef je_mallctlnametomib
115 #undef je_mallctlbymib
116 #undef je_malloc_stats_print
117 #undef je_allocm
118 #undef je_rallocm
119 #undef je_sallocm
120 #undef je_dallocm
121 #undef je_nallocm
122 #define je_malloc               __malloc
123 #define je_calloc               __calloc
124 #define je_posix_memalign       __posix_memalign
125 #define je_aligned_alloc        __aligned_alloc
126 #define je_realloc              __realloc
127 #define je_free                 __free
128 #define je_malloc_usable_size   __malloc_usable_size
129 #define je_mallocx              __mallocx
130 #define je_rallocx              __rallocx
131 #define je_xallocx              __xallocx
132 #define je_sallocx              __sallocx
133 #define je_dallocx              __dallocx
134 #define je_sdallocx             __sdallocx
135 #define je_nallocx              __nallocx
136 #define je_mallctl              __mallctl
137 #define je_mallctlnametomib     __mallctlnametomib
138 #define je_mallctlbymib         __mallctlbymib
139 #define je_malloc_stats_print   __malloc_stats_print
140 #define je_allocm               __allocm
141 #define je_rallocm              __rallocm
142 #define je_sallocm              __sallocm
143 #define je_dallocm              __dallocm
144 #define je_nallocm              __nallocm
145 #define open                    _open
146 #define read                    _read
147 #define write                   _write
148 #define close                   _close
149 #define pthread_join            _pthread_join
150 #define pthread_once            _pthread_once
151 #define pthread_self            _pthread_self
152 #define pthread_equal           _pthread_equal
153 #define pthread_mutex_lock      _pthread_mutex_lock
154 #define pthread_mutex_trylock   _pthread_mutex_trylock
155 #define pthread_mutex_unlock    _pthread_mutex_unlock
156 #define pthread_cond_init       _pthread_cond_init
157 #define pthread_cond_wait       _pthread_cond_wait
158 #define pthread_cond_timedwait  _pthread_cond_timedwait
159 #define pthread_cond_signal     _pthread_cond_signal
160
161 #ifdef JEMALLOC_C_
162 /*
163  * Define 'weak' symbols so that an application can have its own versions
164  * of malloc, calloc, realloc, free, et al.
165  */
166 __weak_reference(__malloc, malloc);
167 __weak_reference(__calloc, calloc);
168 __weak_reference(__posix_memalign, posix_memalign);
169 __weak_reference(__aligned_alloc, aligned_alloc);
170 __weak_reference(__realloc, realloc);
171 __weak_reference(__free, free);
172 __weak_reference(__malloc_usable_size, malloc_usable_size);
173 __weak_reference(__mallocx, mallocx);
174 __weak_reference(__rallocx, rallocx);
175 __weak_reference(__xallocx, xallocx);
176 __weak_reference(__sallocx, sallocx);
177 __weak_reference(__dallocx, dallocx);
178 __weak_reference(__sdallocx, sdallocx);
179 __weak_reference(__nallocx, nallocx);
180 __weak_reference(__mallctl, mallctl);
181 __weak_reference(__mallctlnametomib, mallctlnametomib);
182 __weak_reference(__mallctlbymib, mallctlbymib);
183 __weak_reference(__malloc_stats_print, malloc_stats_print);
184 __weak_reference(__allocm, allocm);
185 __weak_reference(__rallocm, rallocm);
186 __weak_reference(__sallocm, sallocm);
187 __weak_reference(__dallocm, dallocm);
188 __weak_reference(__nallocm, nallocm);
189 #endif