xref: /netbsd-src/external/bsd/jemalloc.old/include/jemalloc/jemalloc_protos.h (revision 8e33eff89e26cf71871ead62f0d5063e1313c33a)
1*8e33eff8Schristos /*
2*8e33eff8Schristos  * The je_ prefix on the following public symbol declarations is an artifact
3*8e33eff8Schristos  * of namespace management, and should be omitted in application code unless
4*8e33eff8Schristos  * JEMALLOC_NO_DEMANGLE is defined (see jemalloc_mangle.h).
5*8e33eff8Schristos  */
6*8e33eff8Schristos extern JEMALLOC_EXPORT const char	*je_malloc_conf;
7*8e33eff8Schristos extern JEMALLOC_EXPORT void		(*je_malloc_message)(void *cbopaque,
8*8e33eff8Schristos     const char *s);
9*8e33eff8Schristos 
10*8e33eff8Schristos JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
11*8e33eff8Schristos     void JEMALLOC_NOTHROW	*je_malloc(size_t size)
12*8e33eff8Schristos     JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1);
13*8e33eff8Schristos JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
14*8e33eff8Schristos     void JEMALLOC_NOTHROW	*je_calloc(size_t num, size_t size)
15*8e33eff8Schristos     JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE2(1, 2);
16*8e33eff8Schristos JEMALLOC_EXPORT int JEMALLOC_NOTHROW	je_posix_memalign(void **memptr,
17*8e33eff8Schristos     size_t alignment, size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(nonnull(1));
18*8e33eff8Schristos JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
19*8e33eff8Schristos     void JEMALLOC_NOTHROW	*je_aligned_alloc(size_t alignment,
20*8e33eff8Schristos     size_t size) JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc)
21*8e33eff8Schristos     JEMALLOC_ALLOC_SIZE(2);
22*8e33eff8Schristos JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
23*8e33eff8Schristos     void JEMALLOC_NOTHROW	*je_realloc(void *ptr, size_t size)
24*8e33eff8Schristos     JEMALLOC_CXX_THROW JEMALLOC_ALLOC_SIZE(2);
25*8e33eff8Schristos JEMALLOC_EXPORT void JEMALLOC_NOTHROW	je_free(void *ptr)
26*8e33eff8Schristos     JEMALLOC_CXX_THROW;
27*8e33eff8Schristos 
28*8e33eff8Schristos JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
29*8e33eff8Schristos     void JEMALLOC_NOTHROW	*je_mallocx(size_t size, int flags)
30*8e33eff8Schristos     JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1);
31*8e33eff8Schristos JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
32*8e33eff8Schristos     void JEMALLOC_NOTHROW	*je_rallocx(void *ptr, size_t size,
33*8e33eff8Schristos     int flags) JEMALLOC_ALLOC_SIZE(2);
34*8e33eff8Schristos JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW	je_xallocx(void *ptr, size_t size,
35*8e33eff8Schristos     size_t extra, int flags);
36*8e33eff8Schristos JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW	je_sallocx(const void *ptr,
37*8e33eff8Schristos     int flags) JEMALLOC_ATTR(pure);
38*8e33eff8Schristos JEMALLOC_EXPORT void JEMALLOC_NOTHROW	je_dallocx(void *ptr, int flags);
39*8e33eff8Schristos JEMALLOC_EXPORT void JEMALLOC_NOTHROW	je_sdallocx(void *ptr, size_t size,
40*8e33eff8Schristos     int flags);
41*8e33eff8Schristos JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW	je_nallocx(size_t size, int flags)
42*8e33eff8Schristos     JEMALLOC_ATTR(pure);
43*8e33eff8Schristos 
44*8e33eff8Schristos JEMALLOC_EXPORT int JEMALLOC_NOTHROW	je_mallctl(const char *name,
45*8e33eff8Schristos     void *oldp, size_t *oldlenp, void *newp, size_t newlen);
46*8e33eff8Schristos JEMALLOC_EXPORT int JEMALLOC_NOTHROW	je_mallctlnametomib(const char *name,
47*8e33eff8Schristos     size_t *mibp, size_t *miblenp);
48*8e33eff8Schristos JEMALLOC_EXPORT int JEMALLOC_NOTHROW	je_mallctlbymib(const size_t *mib,
49*8e33eff8Schristos     size_t miblen, void *oldp, size_t *oldlenp, void *newp, size_t newlen);
50*8e33eff8Schristos JEMALLOC_EXPORT void JEMALLOC_NOTHROW	je_malloc_stats_print(
51*8e33eff8Schristos     void (*write_cb)(void *, const char *), void *je_cbopaque,
52*8e33eff8Schristos     const char *opts);
53*8e33eff8Schristos JEMALLOC_EXPORT size_t JEMALLOC_NOTHROW	je_malloc_usable_size(
54*8e33eff8Schristos     JEMALLOC_USABLE_SIZE_CONST void *ptr) JEMALLOC_CXX_THROW;
55*8e33eff8Schristos 
56*8e33eff8Schristos #ifdef JEMALLOC_OVERRIDE_MEMALIGN
57*8e33eff8Schristos JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
58*8e33eff8Schristos     void JEMALLOC_NOTHROW	*je_memalign(size_t alignment, size_t size)
59*8e33eff8Schristos     JEMALLOC_CXX_THROW JEMALLOC_ATTR(malloc);
60*8e33eff8Schristos #endif
61*8e33eff8Schristos 
62*8e33eff8Schristos #ifdef JEMALLOC_OVERRIDE_VALLOC
63*8e33eff8Schristos JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN
64*8e33eff8Schristos     void JEMALLOC_NOTHROW	*je_valloc(size_t size) JEMALLOC_CXX_THROW
65*8e33eff8Schristos     JEMALLOC_ATTR(malloc);
66*8e33eff8Schristos #endif
67