Blame memkind-1.10.0/jemalloc/include/jemalloc/internal/tcache_externs.h

Packit Service 724aca
#ifndef JEMALLOC_INTERNAL_TCACHE_EXTERNS_H
Packit Service 724aca
#define JEMALLOC_INTERNAL_TCACHE_EXTERNS_H
Packit Service 724aca
Packit Service 724aca
extern bool	opt_tcache;
Packit Service 724aca
extern ssize_t	opt_lg_tcache_max;
Packit Service 724aca
Packit Service 724aca
extern cache_bin_info_t	*tcache_bin_info;
Packit Service 724aca
Packit Service 724aca
/*
Packit Service 724aca
 * Number of tcache bins.  There are SC_NBINS small-object bins, plus 0 or more
Packit Service 724aca
 * large-object bins.
Packit Service 724aca
 */
Packit Service 724aca
extern unsigned	nhbins;
Packit Service 724aca
Packit Service 724aca
/* Maximum cached size class. */
Packit Service 724aca
extern size_t	tcache_maxclass;
Packit Service 724aca
Packit Service 724aca
/*
Packit Service 724aca
 * Explicit tcaches, managed via the tcache.{create,flush,destroy} mallctls and
Packit Service 724aca
 * usable via the MALLOCX_TCACHE() flag.  The automatic per thread tcaches are
Packit Service 724aca
 * completely disjoint from this data structure.  tcaches starts off as a sparse
Packit Service 724aca
 * array, so it has no physical memory footprint until individual pages are
Packit Service 724aca
 * touched.  This allows the entire array to be allocated the first time an
Packit Service 724aca
 * explicit tcache is created without a disproportionate impact on memory usage.
Packit Service 724aca
 */
Packit Service 724aca
extern tcaches_t	*tcaches;
Packit Service 724aca
Packit Service 724aca
size_t	tcache_salloc(tsdn_t *tsdn, const void *ptr);
Packit Service 724aca
void	tcache_event_hard(tsd_t *tsd, tcache_t *tcache);
Packit Service 724aca
void	*tcache_alloc_small_hard(tsdn_t *tsdn, arena_t *arena, tcache_t *tcache,
Packit Service 724aca
    cache_bin_t *tbin, szind_t binind, bool *tcache_success);
Packit Service 724aca
void	tcache_bin_flush_small(tsd_t *tsd, tcache_t *tcache, cache_bin_t *tbin,
Packit Service 724aca
    szind_t binind, unsigned rem);
Packit Service 724aca
void	tcache_bin_flush_large(tsd_t *tsd, cache_bin_t *tbin, szind_t binind,
Packit Service 724aca
    unsigned rem, tcache_t *tcache);
Packit Service 724aca
void	tcache_arena_reassociate(tsdn_t *tsdn, tcache_t *tcache,
Packit Service 724aca
    arena_t *arena);
Packit Service 724aca
tcache_t *tcache_create_explicit(tsd_t *tsd);
Packit Service 724aca
void	tcache_cleanup(tsd_t *tsd);
Packit Service 724aca
void	tcache_stats_merge(tsdn_t *tsdn, tcache_t *tcache, arena_t *arena);
Packit Service 724aca
bool	tcaches_create(tsd_t *tsd, unsigned *r_ind);
Packit Service 724aca
void	tcaches_flush(tsd_t *tsd, unsigned ind);
Packit Service 724aca
void	tcaches_destroy(tsd_t *tsd, unsigned ind);
Packit Service 724aca
bool	tcache_boot(tsdn_t *tsdn);
Packit Service 724aca
void tcache_arena_associate(tsdn_t *tsdn, tcache_t *tcache, arena_t *arena);
Packit Service 724aca
void tcache_prefork(tsdn_t *tsdn);
Packit Service 724aca
void tcache_postfork_parent(tsdn_t *tsdn);
Packit Service 724aca
void tcache_postfork_child(tsdn_t *tsdn);
Packit Service 724aca
void tcache_flush(tsd_t *tsd);
Packit Service 724aca
bool tsd_tcache_data_init(tsd_t *tsd);
Packit Service 724aca
bool tsd_tcache_enabled_data_init(tsd_t *tsd);
Packit Service 724aca
Packit Service 724aca
#endif /* JEMALLOC_INTERNAL_TCACHE_EXTERNS_H */