X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=lib%2Fbloom.c;h=9ccec5fa14a0c2cf2d6794efc754a9e894cab06b;hp=f4eff575082b171827b8319d16b9c938f7a6a979;hb=eb50727a93ce10568973d6fc6b267b966e65b698;hpb=7903bf87725b18495a06f7199342f167147712eb diff --git a/lib/bloom.c b/lib/bloom.c index f4eff575..9ccec5fa 100644 --- a/lib/bloom.c +++ b/lib/bloom.c @@ -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,7 +113,13 @@ static int __bloom_check(struct bloom *b, uint32_t *data, unsigned int nwords, return was_set == N_HASHES; } -int bloom_set(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, 1); + return __bloom_check(b, data, nwords * sizeof(uint32_t), true); +} + +bool bloom_string(struct bloom *b, const char *data, unsigned int len, + bool set) +{ + return __bloom_check(b, data, len, set); }