jemalloc_FreeBSD.h revision 294573
1234370Sjasone/*
2234370Sjasone * Override settings that were generated in jemalloc_defs.h as necessary.
3234370Sjasone */
4234370Sjasone
5234370Sjasone#undef JEMALLOC_OVERRIDE_VALLOC
6234370Sjasone
7234370Sjasone#ifndef MALLOC_PRODUCTION
8234370Sjasone#define	JEMALLOC_DEBUG
9234370Sjasone#endif
10234370Sjasone
11234370Sjasone/*
12234370Sjasone * The following are architecture-dependent, so conditionally define them for
13234370Sjasone * each supported architecture.
14234370Sjasone */
15234370Sjasone#undef JEMALLOC_TLS_MODEL
16234370Sjasone#undef STATIC_PAGE_SHIFT
17234370Sjasone#undef LG_SIZEOF_PTR
18234370Sjasone#undef LG_SIZEOF_INT
19234370Sjasone#undef LG_SIZEOF_LONG
20234370Sjasone#undef LG_SIZEOF_INTMAX_T
21234370Sjasone
22234370Sjasone#ifdef __i386__
23234370Sjasone#  define LG_SIZEOF_PTR		2
24234370Sjasone#  define JEMALLOC_TLS_MODEL	__attribute__((tls_model("initial-exec")))
25234370Sjasone#endif
26234370Sjasone#ifdef __ia64__
27234370Sjasone#  define LG_SIZEOF_PTR		3
28234370Sjasone#endif
29234370Sjasone#ifdef __sparc64__
30234370Sjasone#  define LG_SIZEOF_PTR		3
31234370Sjasone#  define JEMALLOC_TLS_MODEL	__attribute__((tls_model("initial-exec")))
32234370Sjasone#endif
33234370Sjasone#ifdef __amd64__
34234370Sjasone#  define LG_SIZEOF_PTR		3
35234370Sjasone#  define JEMALLOC_TLS_MODEL	__attribute__((tls_model("initial-exec")))
36234370Sjasone#endif
37234370Sjasone#ifdef __arm__
38234370Sjasone#  define LG_SIZEOF_PTR		2
39234370Sjasone#endif
40286877Sjasone#ifdef __aarch64__
41286877Sjasone#  define LG_SIZEOF_PTR		3
42286877Sjasone#endif
43234370Sjasone#ifdef __mips__
44234646Sjchandra#ifdef __mips_n64
45234646Sjchandra#  define LG_SIZEOF_PTR		3
46234646Sjchandra#else
47234370Sjasone#  define LG_SIZEOF_PTR		2
48234370Sjasone#endif
49234646Sjchandra#endif
50234370Sjasone#ifdef __powerpc64__
51234370Sjasone#  define LG_SIZEOF_PTR		3
52234370Sjasone#elif defined(__powerpc__)
53234370Sjasone#  define LG_SIZEOF_PTR		2
54234370Sjasone#endif
55294573Sbr#ifdef __riscv__
56294573Sbr#  define LG_SIZEOF_PTR		3
57294573Sbr#endif
58234370Sjasone
59234370Sjasone#ifndef JEMALLOC_TLS_MODEL
60234370Sjasone#  define JEMALLOC_TLS_MODEL	/* Default. */
61234370Sjasone#endif
62234370Sjasone
63234370Sjasone#define	STATIC_PAGE_SHIFT	PAGE_SHIFT
64234370Sjasone#define	LG_SIZEOF_INT		2
65234370Sjasone#define	LG_SIZEOF_LONG		LG_SIZEOF_PTR
66234370Sjasone#define	LG_SIZEOF_INTMAX_T	3
67234370Sjasone
68286907Sjasone#undef CPU_SPINWAIT
69286907Sjasone#include <machine/cpu.h>
70286907Sjasone#include <machine/cpufunc.h>
71286907Sjasone#define	CPU_SPINWAIT		cpu_spinwait()
72286907Sjasone
73234370Sjasone/* Disable lazy-lock machinery, mangle isthreaded, and adjust its type. */
74234370Sjasone#undef JEMALLOC_LAZY_LOCK
75234370Sjasoneextern int __isthreaded;
76234370Sjasone#define	isthreaded		((bool)__isthreaded)
77234370Sjasone
78234370Sjasone/* Mangle. */
79250991Smarcel#undef je_malloc
80250991Smarcel#undef je_calloc
81250991Smarcel#undef je_realloc
82250991Smarcel#undef je_free
83250991Smarcel#undef je_posix_memalign
84286866Sjasone#undef je_aligned_alloc
85250991Smarcel#undef je_malloc_usable_size
86261071Sjasone#undef je_mallocx
87261071Sjasone#undef je_rallocx
88261071Sjasone#undef je_xallocx
89261071Sjasone#undef je_sallocx
90261071Sjasone#undef je_dallocx
91261071Sjasone#undef je_nallocx
92250991Smarcel#undef je_allocm
93250991Smarcel#undef je_rallocm
94250991Smarcel#undef je_sallocm
95250991Smarcel#undef je_dallocm
96250991Smarcel#undef je_nallocm
97250991Smarcel#define	je_malloc		__malloc
98250991Smarcel#define	je_calloc		__calloc
99250991Smarcel#define	je_realloc		__realloc
100250991Smarcel#define	je_free			__free
101250991Smarcel#define	je_posix_memalign	__posix_memalign
102286866Sjasone#define	je_aligned_alloc	__aligned_alloc
103250991Smarcel#define	je_malloc_usable_size	__malloc_usable_size
104261071Sjasone#define	je_mallocx		__mallocx
105261071Sjasone#define	je_rallocx		__rallocx
106261071Sjasone#define	je_xallocx		__xallocx
107261071Sjasone#define	je_sallocx		__sallocx
108261071Sjasone#define	je_dallocx		__dallocx
109261071Sjasone#define	je_nallocx		__nallocx
110250991Smarcel#define	je_allocm		__allocm
111250991Smarcel#define	je_rallocm		__rallocm
112250991Smarcel#define	je_sallocm		__sallocm
113250991Smarcel#define	je_dallocm		__dallocm
114250991Smarcel#define	je_nallocm		__nallocm
115234370Sjasone#define	open			_open
116234370Sjasone#define	read			_read
117234370Sjasone#define	write			_write
118234370Sjasone#define	close			_close
119234370Sjasone#define	pthread_mutex_lock	_pthread_mutex_lock
120234370Sjasone#define	pthread_mutex_unlock	_pthread_mutex_unlock
121250991Smarcel
122250991Smarcel#ifdef JEMALLOC_C_
123250991Smarcel/*
124250991Smarcel * Define 'weak' symbols so that an application can have its own versions
125250991Smarcel * of malloc, calloc, realloc, free, et al.
126250991Smarcel */
127250991Smarcel__weak_reference(__malloc, malloc);
128250991Smarcel__weak_reference(__calloc, calloc);
129250991Smarcel__weak_reference(__realloc, realloc);
130250991Smarcel__weak_reference(__free, free);
131250991Smarcel__weak_reference(__posix_memalign, posix_memalign);
132286866Sjasone__weak_reference(__aligned_alloc, aligned_alloc);
133250991Smarcel__weak_reference(__malloc_usable_size, malloc_usable_size);
134261071Sjasone__weak_reference(__mallocx, mallocx);
135261071Sjasone__weak_reference(__rallocx, rallocx);
136261071Sjasone__weak_reference(__xallocx, xallocx);
137261071Sjasone__weak_reference(__sallocx, sallocx);
138261071Sjasone__weak_reference(__dallocx, dallocx);
139261071Sjasone__weak_reference(__nallocx, nallocx);
140250991Smarcel__weak_reference(__allocm, allocm);
141250991Smarcel__weak_reference(__rallocm, rallocm);
142250991Smarcel__weak_reference(__sallocm, sallocm);
143250991Smarcel__weak_reference(__dallocm, dallocm);
144250991Smarcel__weak_reference(__nallocm, nallocm);
145250991Smarcel#endif
146