jemalloc_FreeBSD.h revision 256283
1/* 2 * Override settings that were generated in jemalloc_defs.h as necessary. 3 */ 4 5#undef JEMALLOC_OVERRIDE_VALLOC 6 7#define MALLOC_PRODUCTION 8 9#ifndef MALLOC_PRODUCTION 10#define JEMALLOC_DEBUG 11#endif 12 13/* 14 * The following are architecture-dependent, so conditionally define them for 15 * each supported architecture. 16 */ 17#undef CPU_SPINWAIT 18#undef JEMALLOC_TLS_MODEL 19#undef STATIC_PAGE_SHIFT 20#undef LG_SIZEOF_PTR 21#undef LG_SIZEOF_INT 22#undef LG_SIZEOF_LONG 23#undef LG_SIZEOF_INTMAX_T 24 25#ifdef __i386__ 26# define LG_SIZEOF_PTR 2 27# define CPU_SPINWAIT __asm__ volatile("pause") 28# define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec"))) 29#endif 30#ifdef __ia64__ 31# define LG_SIZEOF_PTR 3 32#endif 33#ifdef __sparc64__ 34# define LG_SIZEOF_PTR 3 35# define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec"))) 36#endif 37#ifdef __amd64__ 38# define LG_SIZEOF_PTR 3 39# define CPU_SPINWAIT __asm__ volatile("pause") 40# define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec"))) 41#endif 42#ifdef __arm__ 43# define LG_SIZEOF_PTR 2 44#endif 45#ifdef __mips__ 46#ifdef __mips_n64 47# define LG_SIZEOF_PTR 3 48#else 49# define LG_SIZEOF_PTR 2 50#endif 51#endif 52#ifdef __powerpc64__ 53# define LG_SIZEOF_PTR 3 54#elif defined(__powerpc__) 55# define LG_SIZEOF_PTR 2 56#endif 57 58#ifndef JEMALLOC_TLS_MODEL 59# define JEMALLOC_TLS_MODEL /* Default. */ 60#endif 61 62#define STATIC_PAGE_SHIFT PAGE_SHIFT 63#define LG_SIZEOF_INT 2 64#define LG_SIZEOF_LONG LG_SIZEOF_PTR 65#define LG_SIZEOF_INTMAX_T 3 66 67/* Disable lazy-lock machinery, mangle isthreaded, and adjust its type. */ 68#undef JEMALLOC_LAZY_LOCK 69extern int __isthreaded; 70#define isthreaded ((bool)__isthreaded) 71 72/* Mangle. */ 73#undef je_malloc 74#undef je_calloc 75#undef je_realloc 76#undef je_free 77#undef je_posix_memalign 78#undef je_malloc_usable_size 79#undef je_allocm 80#undef je_rallocm 81#undef je_sallocm 82#undef je_dallocm 83#undef je_nallocm 84#define je_malloc __malloc 85#define je_calloc __calloc 86#define je_realloc __realloc 87#define je_free __free 88#define je_posix_memalign __posix_memalign 89#define je_malloc_usable_size __malloc_usable_size 90#define je_allocm __allocm 91#define je_rallocm __rallocm 92#define je_sallocm __sallocm 93#define je_dallocm __dallocm 94#define je_nallocm __nallocm 95#define open _open 96#define read _read 97#define write _write 98#define close _close 99#define pthread_mutex_lock _pthread_mutex_lock 100#define pthread_mutex_unlock _pthread_mutex_unlock 101 102#ifdef JEMALLOC_C_ 103/* 104 * Define 'weak' symbols so that an application can have its own versions 105 * of malloc, calloc, realloc, free, et al. 106 */ 107__weak_reference(__malloc, malloc); 108__weak_reference(__calloc, calloc); 109__weak_reference(__realloc, realloc); 110__weak_reference(__free, free); 111__weak_reference(__posix_memalign, posix_memalign); 112__weak_reference(__malloc_usable_size, malloc_usable_size); 113__weak_reference(__allocm, allocm); 114__weak_reference(__rallocm, rallocm); 115__weak_reference(__sallocm, sallocm); 116__weak_reference(__dallocm, dallocm); 117__weak_reference(__nallocm, nallocm); 118#endif 119 120