diff options
author | 3gg <3gg@shellblade.net> | 2023-07-16 16:31:59 -0700 |
---|---|---|
committer | 3gg <3gg@shellblade.net> | 2023-07-16 16:31:59 -0700 |
commit | ecc2645ba4c44005ef13e33c79059de69b76551f (patch) | |
tree | 0a440aa55cf81d61688bbd34dfe8f07c39e55171 /mempool | |
parent | f48986597e6ff092feb0f18a79c6fa51a3f0e3bb (diff) |
Add function to query pool capacity.
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 | } | ||