Due to races clean blocks can remain cached, remove a conditional from
[dragonfly.git] / usr.bin / make / hash_tables.c
blobf2b121243294db3c1ffd59469896bd9ff42c4803
1 /*
2 * DO NOT EDIT
3 * $DragonFly: src/usr.bin/make/hash_tables.c,v 1.1 2005/04/29 23:11:49 okumoto Exp $
4 * auto-generated from /usr/home/okumoto/Work/make/dfly-src/make/parse.c
5 * DO NOT EDIT
6 */
7 #include <sys/types.h>
9 #include "hash_tables.h"
12 * d=2
13 * n=40
14 * m=19
15 * c=2.09
16 * maxlen=1
17 * minklen=2
18 * maxklen=9
19 * minchar=97
20 * maxchar=119
21 * loop=0
22 * numiter=1
23 * seed=
26 static const signed char directive_g[] = {
27 8, 0, 0, 5, 6, -1, 17, 15, 10, 6,
28 -1, -1, 0, 0, 2, -1, 16, 2, 3, 0,
29 7, -1, -1, -1, 0, 14, -1, -1, 11, 7,
30 -1, -1, 0, -1, 0, 0, 17, 0, -1, 1,
33 static const u_char directive_T0[] = {
34 26, 14, 19, 35, 10, 34, 18, 27, 1, 17,
35 22, 37, 12, 12, 36, 21, 0, 6, 1, 25,
36 9, 4, 19,
39 static const u_char directive_T1[] = {
40 25, 22, 19, 0, 2, 18, 33, 18, 30, 4,
41 30, 9, 21, 19, 16, 12, 35, 34, 4, 19,
42 9, 33, 16,
46 int
47 directive_hash(const u_char *key, size_t len)
49 unsigned f0, f1;
50 const u_char *kp = key;
52 if (len < 2 || len > 9)
53 return -1;
55 for (f0=f1=0; kp < key + len; ++kp) {
56 if (*kp < 97 || *kp > 119)
57 return -1;
58 f0 += directive_T0[-97 + *kp];
59 f1 += directive_T1[-97 + *kp];
62 f0 %= 40;
63 f1 %= 40;
65 return (directive_g[f0] + directive_g[f1]) % 19;
68 * d=2
69 * n=72
70 * m=34
71 * c=2.09
72 * maxlen=1
73 * minklen=4
74 * maxklen=12
75 * minchar=46
76 * maxchar=95
77 * loop=0
78 * numiter=4
79 * seed=
82 static const signed char keyword_g[] = {
83 8, 15, -1, 25, 22, 20, -1, 33, 16, -1,
84 21, 31, 0, 0, 0, 29, 30, 8, -1, 0,
85 -1, 21, -1, 0, -1, -1, -1, -1, -1, 4,
86 -1, -1, 25, 28, -1, 27, 11, 23, 0, 0,
87 24, -1, -1, 0, 3, 0, -1, 24, 0, 0,
88 -1, 28, 12, -1, 20, 13, -1, 5, -1, 1,
89 0, 0, -1, 0, 10, 19, 13, 9, -1, 2,
90 -1, -1,
93 static const u_char keyword_T0[] = {
94 32, 10, 54, 61, 2, 35, 62, 50, 52, 53,
95 70, 7, 62, 18, 24, 30, 31, 66, 10, 61,
96 52, 71, 56, 56, 28, 6, 33, 67, 12, 41,
97 39, 45, 51, 21, 34, 53, 56, 40, 47, 52,
98 21, 61, 60, 12, 7, 28, 42, 38, 38, 52,
101 static const u_char keyword_T1[] = {
102 0, 39, 65, 48, 13, 62, 46, 42, 5, 50,
103 69, 69, 69, 43, 2, 46, 12, 6, 11, 9,
104 24, 10, 25, 64, 68, 13, 57, 55, 17, 33,
105 1, 18, 0, 67, 10, 14, 57, 56, 0, 6,
106 50, 13, 3, 47, 56, 22, 37, 13, 28, 48,
111 keyword_hash(const u_char *key, size_t len)
113 unsigned f0, f1;
114 const u_char *kp = key;
116 if (len < 4 || len > 12)
117 return -1;
119 for (f0=f1=0; *kp; ++kp) {
120 if (*kp < 46 || *kp > 95)
121 return -1;
122 f0 += keyword_T0[-46 + *kp];
123 f1 += keyword_T1[-46 + *kp];
126 f0 %= 72;
127 f1 %= 72;
129 return (keyword_g[f0] + keyword_g[f1]) % 34;