summaryrefslogtreecommitdiff
path: root/util/storage/slabhash.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/storage/slabhash.c')
-rw-r--r--util/storage/slabhash.c13
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);