37 #if defined(LIBC_SCCS) && !defined(lint)
38 static char sccsid[] =
"@(#)hash_func.c 8.2 (Berkeley) 2/21/94";
41 #include <sys/types.h>
43 #include "../include/db.h"
54 static u_int32_t hashfunc __P((
const void *,
size_t));
57 u_int32_t (*__default_hash) __P((const
void *,
size_t)) = hashfunc;
71 #define PRIME2 1048583
78 register const u_char *key;
82 for (key = keyarg, h = 0; len--;)
83 h = h * PRIME1 ^ (*key++ -
' ');
94 #define dcharhash(h, c) ((h) = 0x63c63cd9*(h) + 0x9c39c33d + (c))
101 register const u_char *e, *key;
102 register u_int32_t h;
107 for (h = 0; key != e;) {
128 hashfunc(keyarg, len)
132 register const u_char *key;
133 register size_t loop;
134 register u_int32_t h;
136 #define HASHC h = *key++ + 65599 * h
141 loop = (len + 8 - 1) >> 3;
143 switch (len & (8 - 1)) {
178 hashfunc(keyarg, len)
182 register const u_char *key;
183 register size_t loop;
184 register u_int32_t h;
186 #define HASH4a h = (h << 5) - h + *key++;
187 #define HASH4b h = (h << 5) + h + *key++;
193 loop = (len + 8 - 1) >> 3;
195 switch (len & (8 - 1)) {