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