Commit | Line | Data |
---|---|---|
41177ed3 JA |
1 | #include "fnv.h" |
2 | ||
3 | #define FNV_PRIME 0x100000001b3ULL | |
4 | ||
5 | uint64_t fnv(const void *buf, uint32_t len, uint64_t hval) | |
6 | { | |
7 | const uint64_t *ptr = buf; | |
8 | const uint64_t *end = (void *) buf + len; | |
9 | ||
10 | while (ptr < end) { | |
11 | hval *= FNV_PRIME; | |
12 | hval ^= (uint64_t) *ptr++; | |
13 | } | |
14 | ||
15 | return hval; | |
16 | } |