diff options
Diffstat (limited to 'mempool')
| -rw-r--r-- | mempool/include/mempool.h | 4 | ||||
| -rw-r--r-- | mempool/src/mempool.c | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/mempool/include/mempool.h b/mempool/include/mempool.h index b76ae7c..8251a70 100644 --- a/mempool/include/mempool.h +++ b/mempool/include/mempool.h | |||
| @@ -80,6 +80,9 @@ | |||
| 80 | #define mempool_get_block_index(POOL, BLOCK_PTR) \ | 80 | #define mempool_get_block_index(POOL, BLOCK_PTR) \ |
| 81 | mempool_get_block_index_(&(POOL)->pool, BLOCK_PTR) | 81 | mempool_get_block_index_(&(POOL)->pool, BLOCK_PTR) |
| 82 | 82 | ||
| 83 | /// Return the total capacity of the mempool in bytes. | ||
| 84 | #define mempool_capacity(POOL) mempool_capacity_(&(POOL)->pool) | ||
| 85 | |||
| 83 | /// Iterate over the used blocks of the pool. | 86 | /// Iterate over the used blocks of the pool. |
| 84 | /// | 87 | /// |
| 85 | /// The caller can use 'i' as the index of the current block. | 88 | /// The caller can use 'i' as the index of the current block. |
| @@ -133,3 +136,4 @@ void* mempool_alloc_(mempool*); | |||
| 133 | void mempool_free_(mempool*, void** block_ptr); | 136 | void mempool_free_(mempool*, void** block_ptr); |
| 134 | void* mempool_get_block_(const mempool*, size_t block_index); | 137 | void* mempool_get_block_(const mempool*, size_t block_index); |
| 135 | size_t mempool_get_block_index_(const mempool*, const void* block); | 138 | size_t mempool_get_block_index_(const mempool*, const void* block); |
| 139 | size_t mempool_capacity_(const mempool*); | ||
diff --git a/mempool/src/mempool.c b/mempool/src/mempool.c index fdb5f8c..679f124 100644 --- a/mempool/src/mempool.c +++ b/mempool/src/mempool.c | |||
| @@ -124,3 +124,8 @@ size_t mempool_get_block_index_(const mempool* pool, const void* block) { | |||
| 124 | assert(block_byte_index % pool->block_size_bytes == 0); | 124 | assert(block_byte_index % pool->block_size_bytes == 0); |
| 125 | return block_byte_index / pool->block_size_bytes; | 125 | return block_byte_index / pool->block_size_bytes; |
| 126 | } | 126 | } |
| 127 | |||
| 128 | size_t mempool_capacity_(const mempool* pool) { | ||
| 129 | assert(pool); | ||
| 130 | return pool->num_blocks * pool->block_size_bytes; | ||
| 131 | } | ||
