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