1 /******************************************************************************/
2 #ifdef JEMALLOC_H_TYPES
4 typedef struct ctl_node_s ctl_node_t
;
5 typedef struct ctl_arena_stats_s ctl_arena_stats_t
;
6 typedef struct ctl_stats_s ctl_stats_t
;
8 #endif /* JEMALLOC_H_TYPES */
9 /******************************************************************************/
10 #ifdef JEMALLOC_H_STRUCTS
17 /* If (nchildren == 0), this is a terminal node. */
19 const ctl_node_t
*children
;
22 const ctl_node_t
*(*index
)(const size_t *, size_t,
26 int (*ctl
)(const size_t *, size_t, void *, size_t *, void *,
30 struct ctl_arena_stats_s
{
38 /* Aggregate stats for small size classes, based on bin stats. */
39 size_t allocated_small
;
40 uint64_t nmalloc_small
;
41 uint64_t ndalloc_small
;
42 uint64_t nrequests_small
;
44 malloc_bin_stats_t
*bstats
; /* nbins elements. */
45 malloc_large_stats_t
*lstats
; /* nlclasses elements. */
55 size_t current
; /* stats_chunks.curchunks */
56 uint64_t total
; /* stats_chunks.nchunks */
57 size_t high
; /* stats_chunks.highchunks */
60 size_t allocated
; /* huge_allocated */
61 uint64_t nmalloc
; /* huge_nmalloc */
62 uint64_t ndalloc
; /* huge_ndalloc */
65 ctl_arena_stats_t
*arenas
; /* (narenas + 1) elements. */
71 #endif /* JEMALLOC_H_STRUCTS */
72 /******************************************************************************/
73 #ifdef JEMALLOC_H_EXTERNS
75 int ctl_byname(const char *name
, void *oldp
, size_t *oldlenp
, void *newp
,
77 int ctl_nametomib(const char *name
, size_t *mibp
, size_t *miblenp
);
79 int ctl_bymib(const size_t *mib
, size_t miblen
, void *oldp
, size_t *oldlenp
,
80 void *newp
, size_t newlen
);
83 #define xmallctl(name, oldp, oldlenp, newp, newlen) do { \
84 if (JEMALLOC_P(mallctl)(name, oldp, oldlenp, newp, newlen) \
86 malloc_write("<jemalloc>: Failure in xmallctl(\""); \
88 malloc_write("\", ...)\n"); \
93 #define xmallctlnametomib(name, mibp, miblenp) do { \
94 if (JEMALLOC_P(mallctlnametomib)(name, mibp, miblenp) != 0) { \
96 "<jemalloc>: Failure in xmallctlnametomib(\""); \
98 malloc_write("\", ...)\n"); \
103 #define xmallctlbymib(mib, miblen, oldp, oldlenp, newp, newlen) do { \
104 if (JEMALLOC_P(mallctlbymib)(mib, miblen, oldp, oldlenp, newp, \
107 "<jemalloc>: Failure in xmallctlbymib()\n"); \
112 #endif /* JEMALLOC_H_EXTERNS */
113 /******************************************************************************/
114 #ifdef JEMALLOC_H_INLINES
116 #endif /* JEMALLOC_H_INLINES */
117 /******************************************************************************/