huge.h revision 4e2e3dd9cf19ed5991938a708a8b50611aa5bbf8
18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/******************************************************************************/
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef JEMALLOC_H_TYPES
350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* JEMALLOC_H_TYPES */
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt/******************************************************************************/
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#ifdef JEMALLOC_H_STRUCTS
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* JEMALLOC_H_STRUCTS */
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/******************************************************************************/
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef JEMALLOC_H_EXTERNS
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* Huge allocation statistics. */
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtextern uint64_t		huge_nmalloc;
1450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidtextern uint64_t		huge_ndalloc;
1550b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidtextern size_t		huge_allocated;
1650b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt
1750b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt/* Protects chunk-related data structures. */
1850b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidtextern malloc_mutex_t	huge_mtx;
1950b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt
2050b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidtvoid	*huge_malloc(size_t size, bool zero);
2150b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidtvoid	*huge_palloc(size_t size, size_t alignment, bool zero);
2250b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidtvoid	*huge_ralloc_no_move(void *ptr, size_t oldsize, size_t size,
2350b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidt    size_t extra);
2450b691dc36a8075e8f594e8bea93cb524fa6b1d2Dmitry Shmidtvoid	*huge_ralloc(void *ptr, size_t oldsize, size_t size, size_t extra,
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    size_t alignment, bool zero);
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid	huge_dalloc(void *ptr, bool unmap);
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtsize_t	huge_salloc(const void *ptr);
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtprof_ctx_t	*huge_prof_ctx_get(const void *ptr);
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid	huge_prof_ctx_set(const void *ptr, prof_ctx_t *ctx);
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtbool	huge_boot(void);
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid	huge_prefork(void);
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid	huge_postfork_parent(void);
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid	huge_postfork_child(void);
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* JEMALLOC_H_EXTERNS */
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/******************************************************************************/
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef JEMALLOC_H_INLINES
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* JEMALLOC_H_INLINES */
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/******************************************************************************/
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt