lib/hash.h: add hash_uint64()
[sliver-openvswitch.git] / lib / hash.h
index 0e8edf3..979214a 100644 (file)
@@ -37,6 +37,7 @@ uint32_t hash_bytes(const void *, size_t n_bytes, uint32_t basis);
 
 static inline uint32_t hash_int(uint32_t x, uint32_t basis);
 static inline uint32_t hash_2words(uint32_t, uint32_t);
+static inline uint32_t hash_uint64(uint64_t);
 uint32_t hash_3words(uint32_t, uint32_t, uint32_t);
 
 static inline uint32_t hash_boolean(bool x, uint32_t basis);
@@ -118,6 +119,11 @@ static inline uint32_t hash_2words(uint32_t x, uint32_t y)
     return mhash_finish(mhash_add(mhash_add(x, 0), y), 8);
 }
 
+static inline uint32_t hash_uint64(const uint64_t x)
+{
+    return hash_2words((uint32_t)(x >> 32), (uint32_t)x);
+}
+
 #ifdef __cplusplus
 }
 #endif