mp_stats_chain(pool->state.last[1], stats, 1);
mp_stats_chain(pool->unused, stats, 2);
ASSERT(stats->total_size == pool->total_size);
+ stats->used_size = stats->chain_size[0] + stats->chain_size[1]
+ - MP_CHUNK_TAIL * (stats->chain_count[0] + stats->chain_count[1])
+ - pool->state.free[0] - pool->state.free[1];
}
u64
struct mempool_stats { /** Mempool statistics. See @mp_stats(). **/
u64 total_size; /* Real allocated size in bytes */
+ u64 used_size; /* Estimated size allocated from mempool to application */
uns chain_count[3]; /* Number of allocated chunks in small/big/unused chains */
uns chain_size[3]; /* Size of allocated chunks in small/big/unused chains */
};