diff options
author | Jan Moskyto Matejka <mq@ucw.cz> | 2016-02-10 13:26:07 +0100 |
---|---|---|
committer | Jan Moskyto Matejka <mq@ucw.cz> | 2016-02-10 13:26:07 +0100 |
commit | 9a74622ca1994669cdb3bac0bb2f6df2febd2744 (patch) | |
tree | bbc275b7b10fd6194f3195c9991a5c1d2f4dcf72 /lib/hash.h | |
parent | 1bb3ecb2a5369bc1992514da3cf5ef59dca46416 (diff) |
Updated RTA hashes to 32-bit values.
... and reworked the hashes a bit. Also added mem_hash function
which just computes a hash of given memory block.
Diffstat (limited to 'lib/hash.h')
-rw-r--r-- | lib/hash.h | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -178,3 +178,15 @@ #define HASH_WALK_FILTER_END } while (0) +static inline uint +mem_hash(void *p, int s) +{ + const char *pp = p; + const u64 multiplier = 0xb38bc09a61202731ULL; + u64 value = 0x001047d54778bcafULL; + for (int i=0;i<s;i++) + value = value*multiplier + pp[i]; + + return ((value >> 32) ^ (value & 0xffffffff)); +} + |