15daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#ifndef JEMALLOC_H_ 25daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#define JEMALLOC_H_ 35daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#ifdef __cplusplus 45daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferrisextern "C" { 55daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#endif 65daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 75daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris/* Defined if __attribute__((...)) syntax is supported. */ 85daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#define JEMALLOC_HAVE_ATTR 95daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 106f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* Defined if alloc_size attribute is supported. */ 116c1bfbf43fd7714728b201aca93fc512b8c3930eChristopher Ferris/* #undef JEMALLOC_HAVE_ATTR_ALLOC_SIZE */ 126f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 136f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* Defined if format(gnu_printf, ...) attribute is supported. */ 147027478cb8b35dbc6d14e7bb0c7c6fc883aa8fc0Colin Cross#if !defined(__clang__) 156f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris#define JEMALLOC_HAVE_ATTR_FORMAT_GNU_PRINTF 167027478cb8b35dbc6d14e7bb0c7c6fc883aa8fc0Colin Cross#endif 176f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 186f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* Defined if format(printf, ...) attribute is supported. */ 196f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris#define JEMALLOC_HAVE_ATTR_FORMAT_PRINTF 206f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 215daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris/* 225daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * Define overrides for non-standard allocator-related functions if they are 235daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * present on the system. 245daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris */ 255daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#define JEMALLOC_OVERRIDE_MEMALIGN 266f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris#ifndef __LP64__ 27bf9b0180f3e75b710d1f419fff343885ee1b3880Christopher Ferris#define JEMALLOC_OVERRIDE_VALLOC 2896d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris#endif 295daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 305daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris/* 315daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * At least Linux omits the "const" in: 325daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * 335daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * size_t malloc_usable_size(const void *ptr); 345daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * 355daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * Match the operating system's prototype. 365daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris */ 375daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#define JEMALLOC_USABLE_SIZE_CONST const 385daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 396f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* 406f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * If defined, specify throw() for the public function prototypes when compiling 416f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * with C++. The only justification for this is to match the prototypes that 426f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * glibc defines. 436f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris */ 44bf9b0180f3e75b710d1f419fff343885ee1b3880Christopher Ferris/* #undef JEMALLOC_USE_CXX_THROW */ 456f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 46473a1853074261bb265060e04deeb8efb0fe6facChristopher Ferris#ifdef _MSC_VER 47473a1853074261bb265060e04deeb8efb0fe6facChristopher Ferris# ifdef _WIN64 48473a1853074261bb265060e04deeb8efb0fe6facChristopher Ferris# define LG_SIZEOF_PTR_WIN 3 49473a1853074261bb265060e04deeb8efb0fe6facChristopher Ferris# else 50473a1853074261bb265060e04deeb8efb0fe6facChristopher Ferris# define LG_SIZEOF_PTR_WIN 2 51473a1853074261bb265060e04deeb8efb0fe6facChristopher Ferris# endif 52473a1853074261bb265060e04deeb8efb0fe6facChristopher Ferris#endif 53473a1853074261bb265060e04deeb8efb0fe6facChristopher Ferris 545daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris/* sizeof(void *) == 2^LG_SIZEOF_PTR. */ 559ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris#ifdef __LP64__ 569ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris#define LG_SIZEOF_PTR 3 579ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris#else 585daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#define LG_SIZEOF_PTR 2 599ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris#endif 605daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 615daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris/* 625daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * Name mangling for public symbols is controlled by --with-mangling and 635daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * --with-jemalloc-prefix. With default settings the je_ prefix is stripped by 645daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * these macro definitions. 655daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris */ 665daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#ifndef JEMALLOC_NO_RENAME 675daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_malloc_conf je_malloc_conf 685daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_malloc_message je_malloc_message 695daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_malloc je_malloc 705daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_calloc je_calloc 715daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_posix_memalign je_posix_memalign 725daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_aligned_alloc je_aligned_alloc 735daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_realloc je_realloc 745daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_free je_free 755daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_mallocx je_mallocx 765daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_rallocx je_rallocx 775daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_xallocx je_xallocx 785daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_sallocx je_sallocx 795daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_dallocx je_dallocx 8096d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# define je_sdallocx je_sdallocx 815daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_nallocx je_nallocx 825daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_mallctl je_mallctl 835daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_mallctlnametomib je_mallctlnametomib 845daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_mallctlbymib je_mallctlbymib 855daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_malloc_stats_print je_malloc_stats_print 865daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_malloc_usable_size je_malloc_usable_size 875daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_memalign je_memalign 885daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define je_valloc je_valloc 895daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#endif 905daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 9196d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris#include <stdlib.h> 9296d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris#include <stdbool.h> 9396d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris#include <stdint.h> 945daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#include <limits.h> 955daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#include <strings.h> 965daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 97bf9b0180f3e75b710d1f419fff343885ee1b3880Christopher Ferris#define JEMALLOC_VERSION "4.4.0-0-gf1f76357313e7dcad7262f17a48ff0a2e005fcdc" 986f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris#define JEMALLOC_VERSION_MAJOR 4 99bf9b0180f3e75b710d1f419fff343885ee1b3880Christopher Ferris#define JEMALLOC_VERSION_MINOR 4 100bf9b0180f3e75b710d1f419fff343885ee1b3880Christopher Ferris#define JEMALLOC_VERSION_BUGFIX 0 101354524779686d6d5518078fd681110157631c941Christopher Ferris#define JEMALLOC_VERSION_NREV 0 102bf9b0180f3e75b710d1f419fff343885ee1b3880Christopher Ferris#define JEMALLOC_VERSION_GID "f1f76357313e7dcad7262f17a48ff0a2e005fcdc" 1035daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 104473a1853074261bb265060e04deeb8efb0fe6facChristopher Ferris# define MALLOCX_LG_ALIGN(la) ((int)(la)) 1055daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# if LG_SIZEOF_PTR == 2 106354524779686d6d5518078fd681110157631c941Christopher Ferris# define MALLOCX_ALIGN(a) ((int)(ffs((int)(a))-1)) 1075daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# else 1085daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define MALLOCX_ALIGN(a) \ 109354524779686d6d5518078fd681110157631c941Christopher Ferris ((int)(((size_t)(a) < (size_t)INT_MAX) ? ffs((int)(a))-1 : \ 110354524779686d6d5518078fd681110157631c941Christopher Ferris ffs((int)(((size_t)(a))>>32))+31)) 1115daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# endif 1125daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define MALLOCX_ZERO ((int)0x40) 11396d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris/* 11496d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris * Bias tcache index bits so that 0 encodes "automatic tcache management", and 1 11596d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris * encodes MALLOCX_TCACHE_NONE. 11696d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris */ 11796d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# define MALLOCX_TCACHE(tc) ((int)(((tc)+2) << 8)) 11896d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# define MALLOCX_TCACHE_NONE MALLOCX_TCACHE(-1) 11996d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris/* 12096d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris * Bias arena index bits so that 0 encodes "use an automatically chosen arena". 12196d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris */ 122354524779686d6d5518078fd681110157631c941Christopher Ferris# define MALLOCX_ARENA(a) ((((int)(a))+1) << 20) 1235daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 1246f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris#if defined(__cplusplus) && defined(JEMALLOC_USE_CXX_THROW) 1256f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_CXX_THROW throw() 1266f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris#else 1276f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_CXX_THROW 1286f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris#endif 1296f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 130fb1f094f163a3bf15d8958ba845e83559c0e6dfeChristopher Ferris#if _MSC_VER 1315daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define JEMALLOC_ATTR(s) 1326f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_ALIGNED(s) __declspec(align(s)) 1336f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_ALLOC_SIZE(s) 1346f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_ALLOC_SIZE2(s1, s2) 13596d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# ifndef JEMALLOC_EXPORT 13696d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# ifdef DLLEXPORT 13796d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# define JEMALLOC_EXPORT __declspec(dllexport) 13896d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# else 13996d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# define JEMALLOC_EXPORT __declspec(dllimport) 14096d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# endif 1415daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# endif 1426f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_FORMAT_PRINTF(s, i) 1435daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define JEMALLOC_NOINLINE __declspec(noinline) 1446f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# ifdef __cplusplus 1456f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_NOTHROW __declspec(nothrow) 1466f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# else 1476f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_NOTHROW 1486f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# endif 1496f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_SECTION(s) __declspec(allocate(s)) 1506f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_RESTRICT_RETURN __declspec(restrict) 1516f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# if _MSC_VER >= 1900 && !defined(__EDG__) 1526f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_ALLOCATOR __declspec(allocator) 1536f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# else 1546f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_ALLOCATOR 1556f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# endif 156ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris#elif defined(JEMALLOC_HAVE_ATTR) 157ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_ATTR(s) __attribute__((s)) 158ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_ALIGNED(s) JEMALLOC_ATTR(aligned(s)) 159ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# ifdef JEMALLOC_HAVE_ATTR_ALLOC_SIZE 160ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_ALLOC_SIZE(s) JEMALLOC_ATTR(alloc_size(s)) 161ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_ALLOC_SIZE2(s1, s2) JEMALLOC_ATTR(alloc_size(s1, s2)) 162ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# else 163ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_ALLOC_SIZE(s) 164ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_ALLOC_SIZE2(s1, s2) 165ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# endif 166ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# ifndef JEMALLOC_EXPORT 167ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_EXPORT JEMALLOC_ATTR(visibility("default")) 168ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# endif 169ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# ifdef JEMALLOC_HAVE_ATTR_FORMAT_GNU_PRINTF 170ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_FORMAT_PRINTF(s, i) JEMALLOC_ATTR(format(gnu_printf, s, i)) 171ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# elif defined(JEMALLOC_HAVE_ATTR_FORMAT_PRINTF) 172ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_FORMAT_PRINTF(s, i) JEMALLOC_ATTR(format(printf, s, i)) 173ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# else 174ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_FORMAT_PRINTF(s, i) 175ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# endif 176ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_NOINLINE JEMALLOC_ATTR(noinline) 177ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_NOTHROW JEMALLOC_ATTR(nothrow) 178ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_SECTION(s) JEMALLOC_ATTR(section(s)) 179ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_RESTRICT_RETURN 180ad6417c653ea7eeaebe6a0d56a31aa1cf1c93336Christopher Ferris# define JEMALLOC_ALLOCATOR 1815daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#else 1825daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define JEMALLOC_ATTR(s) 1835daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define JEMALLOC_ALIGNED(s) 1846f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_ALLOC_SIZE(s) 1856f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_ALLOC_SIZE2(s1, s2) 1866f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_EXPORT 1876f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_FORMAT_PRINTF(s, i) 1885daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define JEMALLOC_NOINLINE 1896f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_NOTHROW 1906f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_SECTION(s) 1916f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_RESTRICT_RETURN 1926f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris# define JEMALLOC_ALLOCATOR 1935daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#endif 1945daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 1955daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris/* 1965daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * The je_ prefix on the following public symbol declarations is an artifact 1975daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * of namespace management, and should be omitted in application code unless 1985daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * JEMALLOC_NO_DEMANGLE is defined (see jemalloc_mangle.h). 1995daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris */ 2005daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferrisextern JEMALLOC_EXPORT const char *je_malloc_conf; 2015daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferrisextern JEMALLOC_EXPORT void (*je_malloc_message)(void *cbopaque, 2025daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris const char *s); 2035daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 2046f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN 2056f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris void JEMALLOC_NOTHROW *je_malloc(size_t size) 2066f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1); 2076f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN 2086f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris void JEMALLOC_NOTHROW *je_calloc(size_t num, size_t size) 2096f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2); 2106f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT int JEMALLOC_NOTHROW je_posix_memalign(void **memptr, 2116f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris size_t alignment, size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(nonnull(1)); 2126f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN 2136f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris void JEMALLOC_NOTHROW *je_aligned_alloc(size_t alignment, 2146f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) 2156f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris JEMALLOC_ALLOC_SIZE(2); 2166f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN 2176f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris void JEMALLOC_NOTHROW *je_realloc(void *ptr, size_t size) 2186f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris JEMALLOC_CXX_THROW JEMALLOC_ALLOC_SIZE(2); 2196f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT void JEMALLOC_NOTHROW je_free(void *ptr) 2206f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris JEMALLOC_CXX_THROW; 2215daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 2226f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN 2236f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris void JEMALLOC_NOTHROW *je_mallocx(size_t size, int flags) 2246f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1); 2256f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN 2266f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris void JEMALLOC_NOTHROW *je_rallocx(void *ptr, size_t size, 2276f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris int flags) JEMALLOC_ALLOC_SIZE(2); 2286f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT size_t JEMALLOC_NOTHROW je_xallocx(void *ptr, size_t size, 2296f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris size_t extra, int flags); 2306f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT size_t JEMALLOC_NOTHROW je_sallocx(const void *ptr, 2316f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris int flags) JEMALLOC_ATTR(pure); 2326f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT void JEMALLOC_NOTHROW je_dallocx(void *ptr, int flags); 2336f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT void JEMALLOC_NOTHROW je_sdallocx(void *ptr, size_t size, 2345daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris int flags); 2356f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT size_t JEMALLOC_NOTHROW je_nallocx(size_t size, int flags) 23696d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris JEMALLOC_ATTR(pure); 2375daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 2386f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT int JEMALLOC_NOTHROW je_mallctl(const char *name, 2395daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris void *oldp, size_t *oldlenp, void *newp, size_t newlen); 2406f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT int JEMALLOC_NOTHROW je_mallctlnametomib(const char *name, 2416f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris size_t *mibp, size_t *miblenp); 2426f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT int JEMALLOC_NOTHROW je_mallctlbymib(const size_t *mib, 2436f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris size_t miblen, void *oldp, size_t *oldlenp, void *newp, size_t newlen); 2446f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT void JEMALLOC_NOTHROW je_malloc_stats_print( 2456f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris void (*write_cb)(void *, const char *), void *je_cbopaque, 2466f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris const char *opts); 2476f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT size_t JEMALLOC_NOTHROW je_malloc_usable_size( 2486f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris JEMALLOC_USABLE_SIZE_CONST void *ptr) JEMALLOC_CXX_THROW; 2495daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 2505daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#ifdef JEMALLOC_OVERRIDE_MEMALIGN 2516f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN 2526f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris void JEMALLOC_NOTHROW *je_memalign(size_t alignment, size_t size) 2536f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc); 2545daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#endif 2555daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 2565daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#ifdef JEMALLOC_OVERRIDE_VALLOC 2576f50cbc975f782b7576ed699a7c2b123655d1b95Christopher FerrisJEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN 2586f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris void JEMALLOC_NOTHROW *je_valloc(size_t size) JEMALLOC_CXX_THROW 2596f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris JEMALLOC_ATTR(malloc); 2605daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#endif 2615daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 2626f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* 2636f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * void * 2646f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * chunk_alloc(void *new_addr, size_t size, size_t alignment, bool *zero, 2656f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * bool *commit, unsigned arena_ind); 2666f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris */ 2676f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferristypedef void *(chunk_alloc_t)(void *, size_t, size_t, bool *, bool *, unsigned); 2686f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 2696f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* 2706f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * bool 2716f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * chunk_dalloc(void *chunk, size_t size, bool committed, unsigned arena_ind); 2726f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris */ 2736f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferristypedef bool (chunk_dalloc_t)(void *, size_t, bool, unsigned); 2746f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 2756f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* 2766f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * bool 2776f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * chunk_commit(void *chunk, size_t size, size_t offset, size_t length, 2786f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * unsigned arena_ind); 2796f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris */ 2806f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferristypedef bool (chunk_commit_t)(void *, size_t, size_t, size_t, unsigned); 2816f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 2826f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* 2836f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * bool 2846f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * chunk_decommit(void *chunk, size_t size, size_t offset, size_t length, 2856f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * unsigned arena_ind); 2866f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris */ 2876f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferristypedef bool (chunk_decommit_t)(void *, size_t, size_t, size_t, unsigned); 2886f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 2896f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* 2906f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * bool 2916f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * chunk_purge(void *chunk, size_t size, size_t offset, size_t length, 2926f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * unsigned arena_ind); 2936f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris */ 2946f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferristypedef bool (chunk_purge_t)(void *, size_t, size_t, size_t, unsigned); 2956f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 2966f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* 2976f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * bool 2986f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * chunk_split(void *chunk, size_t size, size_t size_a, size_t size_b, 2996f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * bool committed, unsigned arena_ind); 3006f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris */ 3016f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferristypedef bool (chunk_split_t)(void *, size_t, size_t, size_t, bool, unsigned); 3026f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 3036f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris/* 3046f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * bool 3056f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * chunk_merge(void *chunk_a, size_t size_a, void *chunk_b, size_t size_b, 3066f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris * bool committed, unsigned arena_ind); 3076f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris */ 3086f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferristypedef bool (chunk_merge_t)(void *, size_t, void *, size_t, bool, unsigned); 3096f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris 3106f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferristypedef struct { 3116f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris chunk_alloc_t *alloc; 3126f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris chunk_dalloc_t *dalloc; 3136f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris chunk_commit_t *commit; 3146f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris chunk_decommit_t *decommit; 3156f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris chunk_purge_t *purge; 3166f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris chunk_split_t *split; 3176f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris chunk_merge_t *merge; 3186f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris} chunk_hooks_t; 3199ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris 3205daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris/* 3215daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * By default application code must explicitly refer to mangled symbol names, 3225daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * so that it is possible to use jemalloc in conjunction with another allocator 3235daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * in the same application. Define JEMALLOC_MANGLE in order to cause automatic 3245daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * name mangling that matches the API prefixing that happened as a result of 3255daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * --with-mangling and/or --with-jemalloc-prefix configuration settings. 3265daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris */ 3275daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#ifdef JEMALLOC_MANGLE 3285daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# ifndef JEMALLOC_NO_DEMANGLE 3295daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define JEMALLOC_NO_DEMANGLE 3305daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# endif 3315daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define malloc_conf je_malloc_conf 3325daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define malloc_message je_malloc_message 3335daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define malloc je_malloc 3345daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define calloc je_calloc 3355daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define posix_memalign je_posix_memalign 3365daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define aligned_alloc je_aligned_alloc 3375daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define realloc je_realloc 3385daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define free je_free 3395daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define mallocx je_mallocx 3405daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define rallocx je_rallocx 3415daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define xallocx je_xallocx 3425daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define sallocx je_sallocx 3435daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define dallocx je_dallocx 34496d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# define sdallocx je_sdallocx 3455daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define nallocx je_nallocx 3465daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define mallctl je_mallctl 3475daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define mallctlnametomib je_mallctlnametomib 3485daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define mallctlbymib je_mallctlbymib 3495daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define malloc_stats_print je_malloc_stats_print 3505daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define malloc_usable_size je_malloc_usable_size 3515daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define memalign je_memalign 3525daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# define valloc je_valloc 3535daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#endif 3545daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 3555daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris/* 3565daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * The je_* macros can be used as stable alternative names for the 3575daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * public jemalloc API if JEMALLOC_NO_DEMANGLE is defined. This is primarily 3585daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * meant for use in jemalloc itself, but it can be used by application code to 3595daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * provide isolation from the name mangling specified via --with-mangling 3605daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris * and/or --with-jemalloc-prefix. 3615daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris */ 3625daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#ifndef JEMALLOC_NO_DEMANGLE 3635daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_malloc_conf 3645daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_malloc_message 3655daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_malloc 3665daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_calloc 3675daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_posix_memalign 3685daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_aligned_alloc 3695daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_realloc 3705daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_free 3715daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_mallocx 3725daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_rallocx 3735daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_xallocx 3745daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_sallocx 3755daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_dallocx 37696d58c8575eeac2a4a026e4d3629388573335bfaChristopher Ferris# undef je_sdallocx 3775daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_nallocx 3785daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_mallctl 3795daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_mallctlnametomib 3805daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_mallctlbymib 3815daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_malloc_stats_print 3825daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_malloc_usable_size 3835daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_memalign 3845daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# undef je_valloc 3855daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#endif 3865daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 3875daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#ifdef __cplusplus 3886f50cbc975f782b7576ed699a7c2b123655d1b95Christopher Ferris} 3895daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#endif 3905daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#endif /* JEMALLOC_H_ */ 391