X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=lib%2Fbloom.c;h=c2e6c11f2e1444020ae18225f8277938827c37f9;hp=8594c9775f51338240e579fe5a48d2050b3aa26a;hb=0a301e93062df3735f9bb87c445e18d98a4b6efb;hpb=c0d7598348446f4506219d7bb12b293d790aebd5;ds=sidebyside diff --git a/lib/bloom.c b/lib/bloom.c index 8594c977..c2e6c11f 100644 --- a/lib/bloom.c +++ b/lib/bloom.c @@ -88,14 +88,14 @@ void bloom_free(struct bloom *b) free(b); } -static bool __bloom_check(struct bloom *b, uint32_t *data, unsigned int nwords, +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; } @@ -115,5 +115,10 @@ static bool __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, true); + return __bloom_check(b, data, nwords * sizeof(uint32_t), true); +} + +bool bloom_set_string(struct bloom *b, const char *data, unsigned int len) +{ + return __bloom_check(b, data, len, true); }