9#define hashsize(n) ((uint32_t)1<<(n))
10#define hashmask(n) (hashsize(n)-1)
11#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k))))
20 a -= c; a ^= rot(c, 4); c += b; \
21 b -= a; b ^= rot(a, 6); a += c; \
22 c -= b; c ^= rot(b, 8); b += a; \
23 a -= c; a ^= rot(c,16); c += b; \
24 b -= a; b ^= rot(a,19); a += c; \
25 c -= b; c ^= rot(b, 4); b += a; \
35 c ^= b; c -= rot(b,14); \
36 a ^= c; a -= rot(c,11); \
37 b ^= a; b -= rot(a,25); \
38 c ^= b; c -= rot(b,16); \
39 a ^= c; a -= rot(c,4); \
40 b ^= a; b -= rot(a,14); \
41 c ^= b; c -= rot(b,24); \
71 union {
const void *ptr;
size_t i; } u;
74 a =
b = c = 0xdeadbeef + ((uint32_t)
length);
78 const uint8_t *
k = (
const uint8_t *)key;
84 a += ((uint32_t)
k[1])<<8;
85 a += ((uint32_t)
k[2])<<16;
86 a += ((uint32_t)
k[3])<<24;
88 b += ((uint32_t)
k[5])<<8;
89 b += ((uint32_t)
k[6])<<16;
90 b += ((uint32_t)
k[7])<<24;
92 c += ((uint32_t)
k[9])<<8;
93 c += ((uint32_t)
k[10])<<16;
94 c += ((uint32_t)
k[11])<<24;
103 case 12: c+=((uint32_t)
k[11])<<24;
104 case 11: c+=((uint32_t)
k[10])<<16;
105 case 10: c+=((uint32_t)
k[9])<<8;
107 case 8 :
b+=((uint32_t)
k[7])<<24;
108 case 7 :
b+=((uint32_t)
k[6])<<16;
109 case 6 :
b+=((uint32_t)
k[5])<<8;
111 case 4 : a+=((uint32_t)
k[3])<<24;
112 case 3 : a+=((uint32_t)
k[2])<<16;
113 case 2 : a+=((uint32_t)
k[1])<<8;
uint32_t hashlittle(const void *key, size_t length)
static BOOLEAN length(leftv result, leftv arg)