}
ch->next = pool->first_chunk;
pool->first_chunk = ch;
+ pool->num_chunks++;
return p;
}
+u64
+ep_total_size(struct eltpool *pool)
+{
+ return (u64)pool->num_chunks * pool->chunk_size + sizeof(*pool);
+}
+
#ifdef TEST
#include <stdio.h>
uns chunk_size;
uns elts_per_chunk;
uns num_allocated; // Just for debugging
+ uns num_chunks;
};
struct eltpool_chunk {
struct eltpool *ep_new(uns elt_size, uns elts_per_chunk);
void ep_delete(struct eltpool *pool);
void *ep_alloc_slow(struct eltpool *pool);
+u64 ep_total_size(struct eltpool *pool);
static inline void *
ep_alloc(struct eltpool *pool)