19ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris/*
29ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris * The jet_ prefix on the following public symbol declarations is an artifact
39ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris * of namespace management, and should be omitted in application code unless
49ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris * JEMALLOC_NO_DEMANGLE is defined (see jemalloc_mangle@install_suffix@.h).
59ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris */
69ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferrisextern JEMALLOC_EXPORT const char	*jet_malloc_conf;
79ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferrisextern JEMALLOC_EXPORT void		(*jet_malloc_message)(void *cbopaque,
89ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    const char *s);
99ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris
109ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void	*jet_malloc(size_t size) JEMALLOC_ATTR(malloc);
119ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void	*jet_calloc(size_t num, size_t size)
129ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    JEMALLOC_ATTR(malloc);
139ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT int	jet_posix_memalign(void **memptr, size_t alignment,
149ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    size_t size) JEMALLOC_ATTR(nonnull(1));
159ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void	*jet_aligned_alloc(size_t alignment, size_t size)
169ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    JEMALLOC_ATTR(malloc);
179ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void	*jet_realloc(void *ptr, size_t size);
189ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void	jet_free(void *ptr);
199ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris
209ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void	*jet_mallocx(size_t size, int flags);
219ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void	*jet_rallocx(void *ptr, size_t size, int flags);
229ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT size_t	jet_xallocx(void *ptr, size_t size, size_t extra,
239ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    int flags);
249ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT size_t	jet_sallocx(const void *ptr, int flags);
259ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void	jet_dallocx(void *ptr, int flags);
269ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT size_t	jet_nallocx(size_t size, int flags);
279ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris
289ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT int	jet_mallctl(const char *name, void *oldp,
299ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    size_t *oldlenp, void *newp, size_t newlen);
309ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT int	jet_mallctlnametomib(const char *name, size_t *mibp,
319ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    size_t *miblenp);
329ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT int	jet_mallctlbymib(const size_t *mib, size_t miblen,
339ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    void *oldp, size_t *oldlenp, void *newp, size_t newlen);
349ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void	jet_malloc_stats_print(void (*write_cb)(void *,
359ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    const char *), void *jet_cbopaque, const char *opts);
369ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT size_t	jet_malloc_usable_size(
379ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    JEMALLOC_USABLE_SIZE_CONST void *ptr);
389ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris
399ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris#ifdef JEMALLOC_OVERRIDE_MEMALIGN
409ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void *	jet_memalign(size_t alignment, size_t size)
419ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris    JEMALLOC_ATTR(malloc);
429ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris#endif
439ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris
449ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris#ifdef JEMALLOC_OVERRIDE_VALLOC
459ebe2acb722ad8e29179cfbff35547f607e0f532Christopher FerrisJEMALLOC_EXPORT void *	jet_valloc(size_t size) JEMALLOC_ATTR(malloc);
469ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris#endif
479ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferris
489ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferristypedef void *(chunk_alloc_t)(size_t, size_t, bool *, unsigned);
499ebe2acb722ad8e29179cfbff35547f607e0f532Christopher Ferristypedef bool (chunk_dalloc_t)(void *, size_t, unsigned);
50