21 lines
369 B
C
21 lines
369 B
C
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
|
||
|
#include <patty/hash.h>
|
||
|
|
||
|
uint32_t patty_hash(void *key, size_t size) {
|
||
|
uint32_t hash = 0, i;
|
||
|
|
||
|
for (i=0; i<size; i++) {
|
||
|
hash += ((uint8_t *)key)[i];
|
||
|
hash += (hash << 10);
|
||
|
hash ^= (hash >> 6);
|
||
|
}
|
||
|
|
||
|
hash += (hash << 3);
|
||
|
hash ^= (hash >> 11);
|
||
|
hash += (hash << 15);
|
||
|
|
||
|
return hash;
|
||
|
}
|