inspect.h revision 1.1 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