1 /* Public domain. */
2 
3 #include "cdb.h"
4 
cdb_hashadd(uint32 h,unsigned char c)5 uint32 cdb_hashadd(uint32 h,unsigned char c)
6 {
7   h += (h << 5);
8   return h ^ c;
9 }
10 
cdb_hash(const char * buf,unsigned int len)11 uint32 cdb_hash(const char *buf,unsigned int len)
12 {
13   uint32 h;
14 
15   h = CDB_HASHSTART;
16   while (len) {
17     h = cdb_hashadd(h,*buf++);
18     --len;
19   }
20   return h;
21 }
22