1 /* Public domain. */ 2 3 #include "cdb.h" 4 cdb_hashadd(uint32 h,unsigned char c)5uint32 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)11uint32 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