util: add a sdbm hash implementation

This commit is contained in:
Daniel Eklöf 2021-02-14 13:28:18 +01:00
parent 663c43c139
commit 34b814349b
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

14
util.h
View file

@ -1,5 +1,6 @@
#pragma once
#include <stdint.h>
#include <threads.h>
#define ALEN(v) (sizeof(v) / sizeof((v)[0]))
@ -21,3 +22,16 @@ thrd_err_as_string(int thrd_err)
return "unknown error";
}
static inline uint64_t
sdbm_hash(const char *s)
{
uint64_t hash = 0;
for (; *s != '\0'; s++) {
int c = *s;
hash = c + (hash << 6) + (hash << 16) - hash;
}
return hash;
}