X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Finclude%2Fhash.h;fp=src%2Fceph%2Fsrc%2Finclude%2Fhash.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=2ab95448b51db8ebafa797808c02802b9ec11458;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/include/hash.h b/src/ceph/src/include/hash.h deleted file mode 100644 index 2ab9544..0000000 --- a/src/ceph/src/include/hash.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef CEPH_HASH_H -#define CEPH_HASH_H - -#include "acconfig.h" - -// Robert Jenkins' function for mixing 32-bit values -// http://burtleburtle.net/bob/hash/evahash.html -// a, b = random bits, c = input and output - -#define hashmix(a,b,c) \ - a=a-b; a=a-c; a=a^(c>>13); \ - b=b-c; b=b-a; b=b^(a<<8); \ - c=c-a; c=c-b; c=c^(b>>13); \ - a=a-b; a=a-c; a=a^(c>>12); \ - b=b-c; b=b-a; b=b^(a<<16); \ - c=c-a; c=c-b; c=c^(b>>5); \ - a=a-b; a=a-c; a=a^(c>>3); \ - b=b-c; b=b-a; b=b^(a<<10); \ - c=c-a; c=c-b; c=c^(b>>15); - - -//namespace ceph { - -template struct rjhash { }; - -inline uint64_t rjhash64(uint64_t key) { - key = (~key) + (key << 21); // key = (key << 21) - key - 1; - key = key ^ (key >> 24); - key = (key + (key << 3)) + (key << 8); // key * 265 - key = key ^ (key >> 14); - key = (key + (key << 2)) + (key << 4); // key * 21 - key = key ^ (key >> 28); - key = key + (key << 31); - return key; -} - -inline uint32_t rjhash32(uint32_t a) { - a = (a+0x7ed55d16) + (a<<12); - a = (a^0xc761c23c) ^ (a>>19); - a = (a+0x165667b1) + (a<<5); - a = (a+0xd3a2646c) ^ (a<<9); - a = (a+0xfd7046c5) + (a<<3); - a = (a^0xb55a4f09) ^ (a>>16); - return a; -} - - -template<> struct rjhash { - inline size_t operator()(const uint32_t x) const { - return rjhash32(x); - } -}; - -template<> struct rjhash { - inline size_t operator()(const uint64_t x) const { - return rjhash64(x); - } -}; - -//} - - - -#endif