1 1.1 christos #ifndef JEMALLOC_INTERNAL_INSPECT_H 2 1.1 christos #define JEMALLOC_INTERNAL_INSPECT_H 3 1.1 christos 4 1.1 christos /* 5 1.1 christos * This module contains the heap introspection capabilities. For now they are 6 1.1 christos * exposed purely through mallctl APIs in the experimental namespace, but this 7 1.1 christos * may change over time. 8 1.1 christos */ 9 1.1 christos 10 1.1 christos /* 11 1.1 christos * The following two structs are for experimental purposes. See 12 1.1 christos * experimental_utilization_query_ctl and 13 1.1 christos * experimental_utilization_batch_query_ctl in src/ctl.c. 14 1.1 christos */ 15 1.1 christos typedef struct inspect_extent_util_stats_s inspect_extent_util_stats_t; 16 1.1 christos struct inspect_extent_util_stats_s { 17 1.1 christos size_t nfree; 18 1.1 christos size_t nregs; 19 1.1 christos size_t size; 20 1.1 christos }; 21 1.1 christos 22 1.1 christos typedef struct inspect_extent_util_stats_verbose_s 23 1.1 christos inspect_extent_util_stats_verbose_t; 24 1.1 christos 25 1.1 christos struct inspect_extent_util_stats_verbose_s { 26 1.1 christos void *slabcur_addr; 27 1.1 christos size_t nfree; 28 1.1 christos size_t nregs; 29 1.1 christos size_t size; 30 1.1 christos size_t bin_nfree; 31 1.1 christos size_t bin_nregs; 32 1.1 christos }; 33 1.1 christos 34 1.1 christos void inspect_extent_util_stats_get(tsdn_t *tsdn, const void *ptr, 35 1.1 christos size_t *nfree, size_t *nregs, size_t *size); 36 1.1 christos void inspect_extent_util_stats_verbose_get(tsdn_t *tsdn, const void *ptr, 37 1.1 christos size_t *nfree, size_t *nregs, size_t *size, 38 1.1 christos size_t *bin_nfree, size_t *bin_nregs, void **slabcur_addr); 39 1.1 christos 40 1.1 christos #endif /* JEMALLOC_INTERNAL_INSPECT_H */ 41