diff options
Diffstat (limited to 'util/storage/slabhash.c')
| -rw-r--r-- | util/storage/slabhash.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/util/storage/slabhash.c b/util/storage/slabhash.c index ae63b97727ee..a6c3d0fa6490 100644 --- a/util/storage/slabhash.c +++ b/util/storage/slabhash.c @@ -153,6 +153,19 @@ size_t slabhash_get_size(struct slabhash* sl) return total; } +int slabhash_is_size(struct slabhash* sl, size_t size, size_t slabs) +{ + /* divide by slabs and then multiply by the number of slabs, + * because if the size is not an even multiple of slabs, the + * uneven amount needs to be removed for comparison */ + if(!sl) return 0; + if(sl->size != slabs) return 0; + if(slabs == 0) return 0; + if( (size/slabs)*slabs == slabhash_get_size(sl)) + return 1; + return 0; +} + size_t slabhash_get_mem(struct slabhash* sl) { size_t i, total = sizeof(*sl); |
