1 #ifndef JEMALLOC_INTERNAL_EXTENT_EXTERNS_H 2 #define JEMALLOC_INTERNAL_EXTENT_EXTERNS_H 3 4 #pragma GCC visibility push(hidden) 5 6 extern rtree_t extents_rtree; 7 extern const extent_hooks_t extent_hooks_default; 8 9 extent_t *extent_alloc(tsdn_t *tsdn, arena_t *arena); 10 void extent_dalloc(tsdn_t *tsdn, arena_t *arena, extent_t *extent); 11 12 extent_hooks_t *extent_hooks_get(arena_t *arena); 13 extent_hooks_t *extent_hooks_set(arena_t *arena, extent_hooks_t *extent_hooks); 14 15 #ifdef JEMALLOC_JET 16 typedef size_t (extent_size_quantize_t)(size_t); 17 extern extent_size_quantize_t *extent_size_quantize_floor; 18 extern extent_size_quantize_t *extent_size_quantize_ceil; 19 #else 20 size_t extent_size_quantize_floor(size_t size); 21 size_t extent_size_quantize_ceil(size_t size); 22 #endif 23 24 ph_proto(, extent_heap_, extent_heap_t, extent_t) 25 26 extent_t *extent_alloc_cache_locked(tsdn_t *tsdn, arena_t *arena, 27 extent_hooks_t **r_extent_hooks, void *new_addr, size_t usize, size_t pad, 28 size_t alignment, bool *zero, bool *commit, bool slab); 29 extent_t *extent_alloc_cache(tsdn_t *tsdn, arena_t *arena, 30 extent_hooks_t **r_extent_hooks, void *new_addr, size_t usize, size_t pad, 31 size_t alignment, bool *zero, bool *commit, bool slab); 32 extent_t *extent_alloc_wrapper(tsdn_t *tsdn, arena_t *arena, 33 extent_hooks_t **r_extent_hooks, void *new_addr, size_t usize, size_t pad, 34 size_t alignment, bool *zero, bool *commit, bool slab); 35 void extent_dalloc_gap(tsdn_t *tsdn, arena_t *arena, extent_t *extent); 36 void extent_dalloc_cache(tsdn_t *tsdn, arena_t *arena, 37 extent_hooks_t **r_extent_hooks, extent_t *extent); 38 bool extent_dalloc_wrapper_try(tsdn_t *tsdn, arena_t *arena, 39 extent_hooks_t **r_extent_hooks, extent_t *extent); 40 void extent_dalloc_wrapper(tsdn_t *tsdn, arena_t *arena, 41 extent_hooks_t **r_extent_hooks, extent_t *extent); 42 bool extent_commit_wrapper(tsdn_t *tsdn, arena_t *arena, 43 extent_hooks_t **r_extent_hooks, extent_t *extent, size_t offset, 44 size_t length); 45 bool extent_decommit_wrapper(tsdn_t *tsdn, arena_t *arena, 46 extent_hooks_t **r_extent_hooks, extent_t *extent, size_t offset, 47 size_t length); 48 bool extent_purge_lazy_wrapper(tsdn_t *tsdn, arena_t *arena, 49 extent_hooks_t **r_extent_hooks, extent_t *extent, size_t offset, 50 size_t length); 51 bool extent_purge_forced_wrapper(tsdn_t *tsdn, arena_t *arena, 52 extent_hooks_t **r_extent_hooks, extent_t *extent, size_t offset, 53 size_t length); 54 extent_t *extent_split_wrapper(tsdn_t *tsdn, arena_t *arena, 55 extent_hooks_t **r_extent_hooks, extent_t *extent, size_t size_a, 56 size_t usize_a, size_t size_b, size_t usize_b); 57 bool extent_merge_wrapper(tsdn_t *tsdn, arena_t *arena, 58 extent_hooks_t **r_extent_hooks, extent_t *a, extent_t *b); 59 60 bool extent_boot(void); 61 62 #pragma GCC visibility pop 63 64 #endif /* JEMALLOC_INTERNAL_EXTENT_EXTERNS_H */ 65