hash: New convenience function hash_string() for hashing a string.
authorBen Pfaff <blp@nicira.com>
Mon, 1 Jun 2009 22:05:33 +0000 (15:05 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 2 Jun 2009 21:09:16 +0000 (14:09 -0700)
lib/hash.h
lib/shash.c
vswitchd/proc-net-compat.c

index e1393ddfd85a59ecd97ec83b80b3af69934d95d0..0dabb439d223c0418df73ebc8b3c1d137b36dc52 100644 (file)
@@ -35,6 +35,7 @@
 
 #include <stddef.h>
 #include <stdint.h>
+#include <string.h>
 
 /* This is the public domain lookup3 hash by Bob Jenkins from
  * http://burtleburtle.net/bob/c/lookup3.c, modified for style. */
@@ -65,4 +66,9 @@
 uint32_t hash_words(const uint32_t *, size_t n_word, uint32_t basis);
 uint32_t hash_bytes(const void *, size_t n_bytes, uint32_t basis);
 
+static inline uint32_t hash_string(const char *s, uint32_t basis)
+{
+    return hash_bytes(s, strlen(s), basis);
+}
+
 #endif /* hash.h */
index 844858880acd18d78b4189fad3bbc9493dedffd9..e4c9f1eb732a9ac431780cbc937ea2e73a640dd5 100644 (file)
@@ -39,7 +39,7 @@
 static size_t
 hash_name(const char *name)
 {
-    return hash_bytes(name, strlen(name), 0);
+    return hash_string(name, 0);
 }
 
 void
index 848fbd70603c74a3bbd474837f7407346e728fb4..a5b86ea807b51dbb0bd13075a5b04dfe98607a63 100644 (file)
@@ -296,7 +296,7 @@ remove_tagged_dev(struct shash_node *node, const char *tagged_dev)
 static uint32_t
 hash_vlan(const char *trunk_dev, uint32_t vid)
 {
-    return hash_words(&vid, 1, hash_bytes(trunk_dev, strlen(trunk_dev), 0));
+    return hash_words(&vid, 1, hash_string(trunk_dev, 0));
 }
 
 /* Update /proc/net/vlan/<vlan_dev> for 'vlan'. */