From f8b6ec4c246f6e5e3fbbf3c7d432c203f8e5ec71 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Fri, 11 Mar 2011 11:32:46 +0000 Subject: [PATCH] patch: add hash_valid_size() --- include/re_hash.h | 1 + src/hash/hash.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/re_hash.h b/include/re_hash.h index f4c1209..60494ad 100644 --- a/include/re_hash.h +++ b/include/re_hash.h @@ -18,6 +18,7 @@ struct le *hash_apply(const struct hash *h, list_apply_h *ah, void *arg); struct list *hash_list(const struct hash *h, uint32_t key); uint32_t hash_bsize(const struct hash *h); void hash_flush(struct hash *h); +uint32_t hash_valid_size(uint32_t size); /* Hash functions */ diff --git a/src/hash/hash.c b/src/hash/hash.c index 15e7797..e07a87f 100644 --- a/src/hash/hash.c +++ b/src/hash/hash.c @@ -181,3 +181,20 @@ void hash_flush(struct hash *h) for (i=0; ibsize; i++) list_flush(&h->bucket[i]); } + + +/** + * Calculate a valid hash size from a random size + * + * @param size Requested size + * + * @return Valid hash size + */ +uint32_t hash_valid_size(uint32_t size) +{ + uint32_t x; + + for (x=0; (uint32_t)1<