Home | History | Annotate | Line # | Download | only in internal
      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