git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ofp-errors: Use OF1.1+ in place of OF1.1 throughout.
[sliver-openvswitch.git]
/
lib
/
hash.c
diff --git
a/lib/hash.c
b/lib/hash.c
index
63b4784
..
b3d9156
100644
(file)
--- a/
lib/hash.c
+++ b/
lib/hash.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (c) 2008, 2009 Nicira Networks.
+ * Copyright (c) 2008, 2009
, 2010, 2012
Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-30,7
+30,7
@@
hash_words(const uint32_t *p, size_t n, uint32_t basis)
a += p[0];
b += p[1];
c += p[2];
a += p[0];
b += p[1];
c += p[2];
-
HASH_MIX(a, b,
c);
+
hash_mix(&a, &b, &
c);
n -= 3;
p += 3;
}
n -= 3;
p += 3;
}
@@
-44,7
+44,7
@@
hash_words(const uint32_t *p, size_t n, uint32_t basis)
/* fall through */
case 1:
a += p[0];
/* fall through */
case 1:
a += p[0];
-
HASH_FINAL(a, b,
c);
+
hash_final(&a, &b, &
c);
/* fall through */
case 0:
break;
/* fall through */
case 0:
break;
@@
-52,21
+52,24
@@
hash_words(const uint32_t *p, size_t n, uint32_t basis)
return c;
}
return c;
}
-/* Returns the hash of the pair of aligned 32-bit words at 'p', starting from
- * 'basis'. */
+/* Returns the hash of 'a', 'b', and 'c'. */
uint32_t
uint32_t
-hash_
2words(const uint32_t *p, uint32_t basis
)
+hash_
3words(uint32_t a, uint32_t b, uint32_t c
)
{
{
- uint32_t a, b, c;
-
- a = b = c = 0xdeadbeef + (2 << 2) + basis;
- b += p[1];
- a += p[0];
- HASH_FINAL(a, b, c);
-
+ a += 0xdeadbeef;
+ b += 0xdeadbeef;
+ c += 0xdeadbeef;
+ hash_final(&a, &b, &c);
return c;
}
return c;
}
+/* Returns the hash of 'a' and 'b'. */
+uint32_t
+hash_2words(uint32_t a, uint32_t b)
+{
+ return hash_3words(a, b, 0);
+}
+
/* Returns the hash of the 'n' bytes at 'p', starting from 'basis'. */
uint32_t
hash_bytes(const void *p_, size_t n, uint32_t basis)
/* Returns the hash of the 'n' bytes at 'p', starting from 'basis'. */
uint32_t
hash_bytes(const void *p_, size_t n, uint32_t basis)
@@
-82,7
+85,7
@@
hash_bytes(const void *p_, size_t n, uint32_t basis)
a += tmp[0];
b += tmp[1];
c += tmp[2];
a += tmp[0];
b += tmp[1];
c += tmp[2];
-
HASH_MIX(a, b,
c);
+
hash_mix(&a, &b, &
c);
n -= sizeof tmp;
p += sizeof tmp;
}
n -= sizeof tmp;
p += sizeof tmp;
}
@@
-93,7
+96,7
@@
hash_bytes(const void *p_, size_t n, uint32_t basis)
a += tmp[0];
b += tmp[1];
c += tmp[2];
a += tmp[0];
b += tmp[1];
c += tmp[2];
-
HASH_FINAL(a, b,
c);
+
hash_final(&a, &b, &
c);
}
return c;
}
return c;