X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=lib%2Fbloom.c;h=9ccec5fa14a0c2cf2d6794efc754a9e894cab06b;hp=33d093a33f6984cf7adc05b4e9092bb4d339300d;hb=eb50727a93ce10568973d6fc6b267b966e65b698;hpb=78583f91bc1df864f2d8e270e08ddd386f379172 diff --git a/lib/bloom.c b/lib/bloom.c index 33d093a3..9ccec5fa 100644 --- a/lib/bloom.c +++ b/lib/bloom.c @@ -35,7 +35,7 @@ static uint32_t bloom_fnv(const void *buf, uint32_t len, uint32_t seed) #define BLOOM_SEED 0x8989 -struct bloom_hash hashes[] = { +static struct bloom_hash hashes[] = { { .seed = BLOOM_SEED, .fn = jhash, @@ -88,14 +88,14 @@ void bloom_free(struct bloom *b) free(b); } -static int __bloom_check(struct bloom *b, uint32_t *data, unsigned int nwords, - int set) +static bool __bloom_check(struct bloom *b, const void *data, unsigned int len, + bool set) { uint32_t hash[N_HASHES]; int i, was_set; for (i = 0; i < N_HASHES; i++) { - hash[i] = hashes[i].fn(data, nwords, hashes[i].seed); + hash[i] = hashes[i].fn(data, len, hashes[i].seed); hash[i] = hash[i] % b->nentries; } @@ -113,12 +113,13 @@ static int __bloom_check(struct bloom *b, uint32_t *data, unsigned int nwords, return was_set == N_HASHES; } -int bloom_check(struct bloom *b, uint32_t *data, unsigned int nwords) +bool bloom_set(struct bloom *b, uint32_t *data, unsigned int nwords) { - return __bloom_check(b, data, nwords, 0); + return __bloom_check(b, data, nwords * sizeof(uint32_t), true); } -int bloom_set(struct bloom *b, uint32_t *data, unsigned int nwords) +bool bloom_string(struct bloom *b, const char *data, unsigned int len, + bool set) { - return __bloom_check(b, data, nwords, 1); + return __bloom_check(b, data, len, set); }