Commit | Line | Data |
---|---|---|
8d063cd8 LW |
1 | /* $Header: hash.h,v 1.0 87/12/18 13:05:20 root Exp $ |
2 | * | |
3 | * $Log: hash.h,v $ | |
4 | * Revision 1.0 87/12/18 13:05:20 root | |
5 | * Initial revision | |
6 | * | |
7 | */ | |
8 | ||
9 | #define FILLPCT 60 /* don't make greater than 99 */ | |
10 | ||
11 | #ifdef DOINIT | |
12 | char coeff[] = { | |
13 | 61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1, | |
14 | 61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1, | |
15 | 61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1, | |
16 | 61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1, | |
17 | 61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1, | |
18 | 61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1, | |
19 | 61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1, | |
20 | 61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1}; | |
21 | #else | |
22 | extern char coeff[]; | |
23 | #endif | |
24 | ||
25 | typedef struct hentry HENT; | |
26 | ||
27 | struct hentry { | |
28 | HENT *hent_next; | |
29 | char *hent_key; | |
30 | STR *hent_val; | |
31 | int hent_hash; | |
32 | }; | |
33 | ||
34 | struct htbl { | |
35 | HENT **tbl_array; | |
36 | int tbl_max; | |
37 | int tbl_fill; | |
38 | int tbl_riter; /* current root of iterator */ | |
39 | HENT *tbl_eiter; /* current entry of iterator */ | |
40 | }; | |
41 | ||
42 | STR *hfetch(); | |
43 | bool hstore(); | |
44 | bool hdelete(); | |
45 | HASH *hnew(); | |
46 | int hiterinit(); | |
47 | HENT *hiternext(); | |
48 | char *hiterkey(); | |
49 | STR *hiterval(); |