VM: full munmap
[minix.git] / lib / libterminfo / hash.c
blob37efeee6c800aed9c591944b1a0f98e204a365ea
1 /* $NetBSD: hash.c,v 1.4 2010/02/12 10:18:56 roy Exp $ */
2 /* DO NOT EDIT
3 * Automatically generated from term.h */
5 #if HAVE_NBTOOL_CONFIG_H
6 #include "nbtool_config.h"
7 #endif
9 #include <sys/cdefs.h>
10 __RCSID("$NetBSD: hash.c,v 1.4 2010/02/12 10:18:56 roy Exp $");
12 #include <stdint.h>
13 #include <stdlib.h>
14 #include <string.h>
15 #include <term_private.h>
16 #include <term.h>
18 static const char _ti_flagids[][6] = {
19 "bw",
20 "am",
21 "bce",
22 "ccc",
23 "xhp",
24 "xhpa",
25 "cpix",
26 "crxm",
27 "xt",
28 "xenl",
29 "eo",
30 "gn",
31 "hc",
32 "chts",
33 "km",
34 "daisy",
35 "hs",
36 "hls",
37 "in",
38 "lpix",
39 "da",
40 "db",
41 "mir",
42 "msgr",
43 "nxon",
44 "xsb",
45 "npc",
46 "ndscr",
47 "nrrmc",
48 "os",
49 "mc5i",
50 "xvpa",
51 "sam",
52 "eslok",
53 "hz",
54 "ul",
55 "xon",
58 #include <stdlib.h>
60 static uint32_t
61 _ti_flaghash(const void * __restrict key, size_t keylen)
63 static const uint8_t g[75] = {
64 0x19, 0x08, 0x16, 0x00, 0x00, 0x1e, 0x07, 0x00, 0x1d, 0x00,
65 0x17, 0x00, 0x0a, 0x17, 0x08, 0x09, 0x11, 0x00, 0x00, 0x0a,
66 0x00, 0x13, 0x1a, 0x0f, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00,
67 0x12, 0x0a, 0x00, 0x11, 0x10, 0x09, 0x00, 0x00, 0x00, 0x1b,
68 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x00,
69 0x00, 0x0d, 0x00, 0x00, 0x04, 0x16, 0x09, 0x00, 0x1a, 0x00,
70 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
71 0x00, 0x1c, 0x05, 0x00, 0x00,
73 uint32_t h[3];
75 mi_vector_hash(key, keylen, 0xd36b2625U, h);
76 return (g[h[0] % 75] + g[h[1] % 75]) % 37;
79 const char *
80 _ti_flagid(ssize_t idx)
83 if ((size_t)idx > __arraycount(_ti_flagids))
84 return NULL;
85 return _ti_flagids[idx];
88 ssize_t
89 _ti_flagindex(const char *key)
91 uint32_t idx;
93 idx = _ti_flaghash((const unsigned char *)key, strlen(key));
94 if (idx > __arraycount(_ti_flagids) ||
95 strcmp(key, _ti_flagids[idx]) != 0)
96 return -1;
97 return idx;
100 static const char _ti_numids[][7] = {
101 "bitwin",
102 "bitype",
103 "bufsz",
104 "btns",
105 "cols",
106 "spinh",
107 "spinv",
108 "it",
109 "lh",
110 "lw",
111 "lines",
112 "lm",
113 "ma",
114 "xmc",
115 "colors",
116 "maddr",
117 "mjump",
118 "pairs",
119 "wnum",
120 "mcs",
121 "mls",
122 "ncv",
123 "nlab",
124 "npins",
125 "orc",
126 "orl",
127 "orhi",
128 "orvi",
129 "pb",
130 "cps",
131 "vt",
132 "widcs",
133 "wsl",
136 #include <stdlib.h>
138 static uint32_t
139 _ti_numhash(const void * __restrict key, size_t keylen)
141 static const uint8_t g[67] = {
142 0x04, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00,
143 0x19, 0x00, 0x0d, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00,
144 0x0b, 0x15, 0x1d, 0x14, 0x00, 0x01, 0x13, 0x1b, 0x14, 0x00,
145 0x19, 0x00, 0x00, 0x02, 0x14, 0x1a, 0x12, 0x00, 0x00, 0x00,
146 0x16, 0x05, 0x00, 0x12, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00,
147 0x19, 0x00, 0x20, 0x00, 0x00, 0x10, 0x17, 0x00, 0x00, 0x0f,
148 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
150 uint32_t h[3];
152 mi_vector_hash(key, keylen, 0x50a11f58U, h);
153 return (g[h[0] % 67] + g[h[1] % 67]) % 33;
156 const char *
157 _ti_numid(ssize_t idx)
160 if ((size_t)idx > __arraycount(_ti_numids))
161 return NULL;
162 return _ti_numids[idx];
165 ssize_t
166 _ti_numindex(const char *key)
168 uint32_t idx;
170 idx = _ti_numhash((const unsigned char *)key, strlen(key));
171 if (idx > __arraycount(_ti_numids) ||
172 strcmp(key, _ti_numids[idx]) != 0)
173 return -1;
174 return idx;
177 static const char _ti_strids[][9] = {
178 "acsc",
179 "scesa",
180 "cbt",
181 "bel",
182 "bicr",
183 "binel",
184 "birep",
185 "cr",
186 "cpi",
187 "lpi",
188 "chr",
189 "cvr",
190 "csr",
191 "rmp",
192 "csnm",
193 "tbc",
194 "mgc",
195 "clear",
196 "el1",
197 "el",
198 "ed",
199 "csin",
200 "colornm",
201 "hpa",
202 "cmdch",
203 "cwin",
204 "cup",
205 "cud1",
206 "home",
207 "civis",
208 "cub1",
209 "mrcup",
210 "cnorm",
211 "cuf1",
212 "ll",
213 "cuu1",
214 "cvvis",
215 "defbi",
216 "defc",
217 "dch1",
218 "dl1",
219 "devt",
220 "dial",
221 "dsl",
222 "dclk",
223 "dispc",
224 "hd",
225 "enacs",
226 "endbi",
227 "smacs",
228 "smam",
229 "blink",
230 "bold",
231 "smcup",
232 "smdc",
233 "dim",
234 "swidm",
235 "sdrfq",
236 "ehhlm",
237 "smir",
238 "sitm",
239 "elhlm",
240 "slm",
241 "elohlm",
242 "smicm",
243 "snlq",
244 "snrmq",
245 "smpch",
246 "prot",
247 "rev",
248 "erhlm",
249 "smsc",
250 "invis",
251 "sshm",
252 "smso",
253 "ssubm",
254 "ssupm",
255 "ethlm",
256 "smul",
257 "sum",
258 "evhlm",
259 "smxon",
260 "ech",
261 "rmacs",
262 "rmam",
263 "sgr0",
264 "rmcup",
265 "rmdc",
266 "rwidm",
267 "rmir",
268 "ritm",
269 "rlm",
270 "rmicm",
271 "rmpch",
272 "rmsc",
273 "rshm",
274 "rmso",
275 "rsubm",
276 "rsupm",
277 "rmul",
278 "rum",
279 "rmxon",
280 "pause",
281 "hook",
282 "flash",
283 "ff",
284 "fsl",
285 "getm",
286 "wingo",
287 "hup",
288 "is1",
289 "is2",
290 "is3",
291 "if",
292 "iprog",
293 "initc",
294 "initp",
295 "ich1",
296 "il1",
297 "ip",
298 "ka1",
299 "ka3",
300 "kb2",
301 "kbs",
302 "kbeg",
303 "kcbt",
304 "kc1",
305 "kc3",
306 "kcan",
307 "ktbc",
308 "kclr",
309 "kclo",
310 "kcmd",
311 "kcpy",
312 "kcrt",
313 "kctab",
314 "kdch1",
315 "kdl1",
316 "kcud1",
317 "krmir",
318 "kend",
319 "kent",
320 "kel",
321 "ked",
322 "kext",
323 "kf0",
324 "kf1",
325 "kf2",
326 "kf3",
327 "kf4",
328 "kf5",
329 "kf6",
330 "kf7",
331 "kf8",
332 "kf9",
333 "kf10",
334 "kf11",
335 "kf12",
336 "kf13",
337 "kf14",
338 "kf15",
339 "kf16",
340 "kf17",
341 "kf18",
342 "kf19",
343 "kf20",
344 "kf21",
345 "kf22",
346 "kf23",
347 "kf24",
348 "kf25",
349 "kf26",
350 "kf27",
351 "kf28",
352 "kf29",
353 "kf30",
354 "kf31",
355 "kf32",
356 "kf33",
357 "kf34",
358 "kf35",
359 "kf36",
360 "kf37",
361 "kf38",
362 "kf39",
363 "kf40",
364 "kf41",
365 "kf42",
366 "kf43",
367 "kf44",
368 "kf45",
369 "kf46",
370 "kf47",
371 "kf48",
372 "kf49",
373 "kf50",
374 "kf51",
375 "kf52",
376 "kf53",
377 "kf54",
378 "kf55",
379 "kf56",
380 "kf57",
381 "kf58",
382 "kf59",
383 "kf60",
384 "kf61",
385 "kf62",
386 "kf63",
387 "kfnd",
388 "khlp",
389 "khome",
390 "kich1",
391 "kil1",
392 "kcub1",
393 "kll",
394 "kmrk",
395 "kmsg",
396 "kmous",
397 "kmov",
398 "knxt",
399 "knp",
400 "kopn",
401 "kopt",
402 "kpp",
403 "kprv",
404 "kprt",
405 "krdo",
406 "kref",
407 "krfr",
408 "krpl",
409 "krst",
410 "kres",
411 "kcuf1",
412 "ksav",
413 "kBEG",
414 "kCAN",
415 "kCMD",
416 "kCPY",
417 "kCRT",
418 "kDC",
419 "kDL",
420 "kslt",
421 "kEND",
422 "kEOL",
423 "kEXT",
424 "kind",
425 "kFND",
426 "kHLP",
427 "kHOM",
428 "kIC",
429 "kLFT",
430 "kMSG",
431 "kMOV",
432 "kNXT",
433 "kOPT",
434 "kPRV",
435 "kPRT",
436 "kri",
437 "kRDO",
438 "kRPL",
439 "kRIT",
440 "kRES",
441 "kSAV",
442 "kSPD",
443 "khts",
444 "kUND",
445 "kspd",
446 "kund",
447 "kcuu1",
448 "rmkx",
449 "smkx",
450 "lf0",
451 "lf1",
452 "lf2",
453 "lf3",
454 "lf4",
455 "lf5",
456 "lf6",
457 "lf7",
458 "lf8",
459 "lf9",
460 "lf10",
461 "fln",
462 "rmln",
463 "smln",
464 "rmm",
465 "smm",
466 "mhpa",
467 "mcud1",
468 "mcub1",
469 "mcuf1",
470 "mvpa",
471 "mcuu1",
472 "minfo",
473 "nel",
474 "porder",
475 "oc",
476 "op",
477 "pad",
478 "dch",
479 "dl",
480 "cud",
481 "mcud",
482 "ich",
483 "indn",
484 "il",
485 "cub",
486 "mcub",
487 "cuf",
488 "mcuf",
489 "rin",
490 "cuu",
491 "mcuu",
492 "pctrm",
493 "pfkey",
494 "pfloc",
495 "pfxl",
496 "pfx",
497 "pln",
498 "mc0",
499 "mc5p",
500 "mc4",
501 "mc5",
502 "pulse",
503 "qdial",
504 "rmclk",
505 "rep",
506 "rfi",
507 "reqmp",
508 "rs1",
509 "rs2",
510 "rs3",
511 "rf",
512 "rc",
513 "vpa",
514 "sc",
515 "scesc",
516 "ind",
517 "ri",
518 "scs",
519 "s0ds",
520 "s1ds",
521 "s2ds",
522 "s3ds",
523 "sgr1",
524 "setab",
525 "setaf",
526 "sgr",
527 "setb",
528 "smgb",
529 "smgbp",
530 "sclk",
531 "setcolor",
532 "scp",
533 "setf",
534 "smgl",
535 "smglp",
536 "smglr",
537 "slines",
538 "slength",
539 "smgr",
540 "smgrp",
541 "hts",
542 "smgtb",
543 "smgt",
544 "smgtp",
545 "wind",
546 "sbim",
547 "scsd",
548 "rbim",
549 "rcsd",
550 "subcs",
551 "supcs",
552 "ht",
553 "docr",
554 "tsl",
555 "tone",
556 "u0",
557 "u1",
558 "u2",
559 "u3",
560 "u4",
561 "u5",
562 "u6",
563 "u7",
564 "u8",
565 "u9",
566 "uc",
567 "hu",
568 "wait",
569 "xoffc",
570 "xonc",
571 "zerom",
574 #include <stdlib.h>
576 static uint32_t
577 _ti_strhash(const void * __restrict key, size_t keylen)
579 static const uint16_t g[789] = {
580 0x0000, 0x00cd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0094,
581 0x0000, 0x011b, 0x00a0, 0x0094, 0x002f, 0x00aa, 0x0026, 0x004b,
582 0x0000, 0x0163, 0x0171, 0x0000, 0x0000, 0x0064, 0x0019, 0x0000,
583 0x009b, 0x0113, 0x00ed, 0x007e, 0x0000, 0x0000, 0x0000, 0x002d,
584 0x0000, 0x00f4, 0x0000, 0x00cc, 0x00df, 0x0170, 0x0000, 0x0000,
585 0x0179, 0x0018, 0x0000, 0x013b, 0x0000, 0x0028, 0x0000, 0x0000,
586 0x00ef, 0x0000, 0x0137, 0x0061, 0x0000, 0x0000, 0x00ce, 0x00df,
587 0x00f0, 0x001f, 0x0074, 0x0000, 0x0000, 0x008f, 0x0069, 0x0000,
588 0x0134, 0x0000, 0x00ac, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000,
589 0x0012, 0x0027, 0x0000, 0x0110, 0x0000, 0x0000, 0x0000, 0x0061,
590 0x00a7, 0x0000, 0x0061, 0x0000, 0x0000, 0x0096, 0x0000, 0x00e5,
591 0x0000, 0x00d1, 0x0017, 0x0000, 0x0000, 0x00bc, 0x00d6, 0x0000,
592 0x0182, 0x00d7, 0x012d, 0x0000, 0x00e2, 0x00b9, 0x0159, 0x0000,
593 0x001c, 0x00cc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
594 0x0000, 0x0031, 0x0106, 0x0087, 0x0157, 0x001d, 0x011a, 0x0119,
595 0x0000, 0x0000, 0x0000, 0x012b, 0x0000, 0x011b, 0x0000, 0x0154,
596 0x0000, 0x00ee, 0x00ad, 0x00f8, 0x0066, 0x0000, 0x0010, 0x0000,
597 0x0064, 0x000e, 0x0052, 0x0000, 0x016a, 0x0000, 0x0148, 0x0000,
598 0x0000, 0x0000, 0x00a4, 0x0000, 0x0000, 0x016d, 0x000b, 0x0000,
599 0x0000, 0x0000, 0x0000, 0x0058, 0x0091, 0x0000, 0x0022, 0x0000,
600 0x0000, 0x0000, 0x0000, 0x0000, 0x0026, 0x011a, 0x00a4, 0x013a,
601 0x0000, 0x0000, 0x0000, 0x0000, 0x0086, 0x0000, 0x00c0, 0x011f,
602 0x0000, 0x0093, 0x0000, 0x0000, 0x0042, 0x0174, 0x0101, 0x0000,
603 0x0065, 0x0086, 0x0000, 0x0000, 0x00e8, 0x0022, 0x000d, 0x0000,
604 0x008e, 0x000d, 0x0000, 0x008b, 0x0000, 0x0000, 0x0000, 0x0000,
605 0x0022, 0x0000, 0x011d, 0x0000, 0x0000, 0x0000, 0x010e, 0x0000,
606 0x0000, 0x0000, 0x0060, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
607 0x0014, 0x00b3, 0x0000, 0x002e, 0x0051, 0x0000, 0x0102, 0x008e,
608 0x012b, 0x0145, 0x004c, 0x0000, 0x001e, 0x00fa, 0x0000, 0x0000,
609 0x0000, 0x0000, 0x00aa, 0x0000, 0x0000, 0x0000, 0x0103, 0x00a4,
610 0x003e, 0x0000, 0x0114, 0x0028, 0x005e, 0x015d, 0x00e7, 0x0044,
611 0x0000, 0x0000, 0x00c6, 0x008f, 0x0000, 0x00eb, 0x0000, 0x0000,
612 0x0000, 0x0169, 0x0000, 0x0110, 0x0093, 0x0000, 0x012c, 0x0178,
613 0x0000, 0x0000, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0158,
614 0x004d, 0x009c, 0x0186, 0x009b, 0x0000, 0x0163, 0x007c, 0x0078,
615 0x0000, 0x0000, 0x0172, 0x00d2, 0x0000, 0x0000, 0x00fc, 0x0000,
616 0x0000, 0x0000, 0x0133, 0x0104, 0x017e, 0x0162, 0x0050, 0x0000,
617 0x0023, 0x00c0, 0x0070, 0x0000, 0x0000, 0x0000, 0x0025, 0x0001,
618 0x0184, 0x0053, 0x0133, 0x0000, 0x0000, 0x0000, 0x0048, 0x0075,
619 0x0000, 0x00b2, 0x0056, 0x002c, 0x0000, 0x011c, 0x0000, 0x0000,
620 0x0000, 0x0000, 0x0000, 0x0166, 0x011b, 0x0000, 0x0039, 0x0020,
621 0x0000, 0x0000, 0x0000, 0x00dc, 0x0048, 0x0000, 0x0076, 0x0169,
622 0x00d7, 0x002a, 0x0032, 0x0013, 0x0153, 0x012f, 0x009c, 0x0041,
623 0x002f, 0x0000, 0x0000, 0x012e, 0x0000, 0x0000, 0x00dd, 0x0000,
624 0x0138, 0x000b, 0x0030, 0x008d, 0x0000, 0x0000, 0x0000, 0x0000,
625 0x0039, 0x017a, 0x00c5, 0x0100, 0x0000, 0x0000, 0x005c, 0x001f,
626 0x0000, 0x0000, 0x0000, 0x0000, 0x0110, 0x003e, 0x00a1, 0x0000,
627 0x0081, 0x0000, 0x0000, 0x0000, 0x00dd, 0x0142, 0x00c1, 0x0000,
628 0x0035, 0x0123, 0x0178, 0x00be, 0x015e, 0x0161, 0x0188, 0x0000,
629 0x0000, 0x0149, 0x0123, 0x0000, 0x0000, 0x0185, 0x0000, 0x0000,
630 0x0000, 0x004e, 0x0163, 0x0077, 0x00fa, 0x0000, 0x007b, 0x0006,
631 0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0158, 0x00d6,
632 0x00b0, 0x0180, 0x0003, 0x0000, 0x0000, 0x0000, 0x0136, 0x0045,
633 0x017e, 0x0000, 0x0000, 0x0000, 0x0126, 0x0090, 0x011b, 0x0000,
634 0x0000, 0x0000, 0x0000, 0x0000, 0x017b, 0x0000, 0x0053, 0x0000,
635 0x005c, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x007e, 0x014e,
636 0x0035, 0x00ed, 0x0000, 0x00d1, 0x00d8, 0x0142, 0x0168, 0x000a,
637 0x00d0, 0x0000, 0x0000, 0x0000, 0x00d9, 0x0000, 0x0000, 0x0087,
638 0x0000, 0x008a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0112, 0x006c,
639 0x011d, 0x0177, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x001e,
640 0x0177, 0x00c4, 0x0000, 0x0000, 0x0000, 0x0014, 0x00c7, 0x00ae,
641 0x0042, 0x0180, 0x0075, 0x0000, 0x011c, 0x0064, 0x00a3, 0x00bc,
642 0x0001, 0x0000, 0x0000, 0x0016, 0x00c3, 0x00e4, 0x0009, 0x0000,
643 0x0000, 0x006b, 0x013c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
644 0x00fa, 0x0000, 0x0000, 0x0000, 0x0117, 0x0000, 0x007c, 0x0060,
645 0x0149, 0x0059, 0x00d4, 0x014e, 0x000a, 0x014f, 0x0000, 0x0000,
646 0x0000, 0x00b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0121,
647 0x0000, 0x0000, 0x0000, 0x007d, 0x0000, 0x0000, 0x001c, 0x0000,
648 0x0000, 0x00f9, 0x0000, 0x003b, 0x00ea, 0x0000, 0x00ad, 0x0000,
649 0x0000, 0x0000, 0x0155, 0x0000, 0x0141, 0x0000, 0x0000, 0x0000,
650 0x0187, 0x004b, 0x009f, 0x0000, 0x0114, 0x0000, 0x00dd, 0x0000,
651 0x0066, 0x0000, 0x0136, 0x0135, 0x0000, 0x0000, 0x0000, 0x0000,
652 0x0000, 0x001e, 0x0000, 0x0062, 0x0146, 0x0033, 0x0071, 0x0000,
653 0x0000, 0x010d, 0x004a, 0x0133, 0x0000, 0x0000, 0x0076, 0x0111,
654 0x0000, 0x00ba, 0x0000, 0x0000, 0x0000, 0x0038, 0x001d, 0x0158,
655 0x0072, 0x00a3, 0x0000, 0x008c, 0x0008, 0x0000, 0x0000, 0x0000,
656 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x00ea, 0x0000, 0x003f,
657 0x0000, 0x0000, 0x0000, 0x004c, 0x0000, 0x00f9, 0x0000, 0x0000,
658 0x0000, 0x0147, 0x0182, 0x008f, 0x0156, 0x0000, 0x0000, 0x0000,
659 0x0000, 0x0000, 0x0011, 0x0000, 0x0102, 0x0040, 0x0000, 0x0000,
660 0x0130, 0x0000, 0x0000, 0x0000, 0x0126, 0x0026, 0x0145, 0x0000,
661 0x0000, 0x00ab, 0x0000, 0x0175, 0x0113, 0x0117, 0x010f, 0x000f,
662 0x0000, 0x00e3, 0x012e, 0x0000, 0x0000, 0x00f5, 0x0020, 0x0000,
663 0x0000, 0x00a8, 0x0000, 0x0000, 0x012a, 0x009f, 0x0085, 0x0000,
664 0x00b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0108,
665 0x00cb, 0x0000, 0x0000, 0x0000, 0x0053, 0x0000, 0x007f, 0x0000,
666 0x008c, 0x0113, 0x0000, 0x0000, 0x0156, 0x0169, 0x0000, 0x0009,
667 0x0000, 0x0073, 0x0000, 0x007e, 0x0000, 0x0000, 0x0000, 0x00eb,
668 0x0000, 0x0153, 0x0084, 0x0000, 0x0000, 0x0148, 0x0000, 0x0000,
669 0x011c, 0x0000, 0x00ec, 0x0000, 0x0000, 0x015a, 0x0000, 0x0000,
670 0x0000, 0x0000, 0x012a, 0x0000, 0x0000, 0x015d, 0x0000, 0x00ae,
671 0x0000, 0x0000, 0x00db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0101,
672 0x0067, 0x0000, 0x010c, 0x0000, 0x0032, 0x0000, 0x0000, 0x0000,
673 0x0000, 0x0000, 0x0167, 0x0000, 0x00e4, 0x0000, 0x00a2, 0x0000,
674 0x0067, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0181, 0x0000,
675 0x015b, 0x0046, 0x0000, 0x0000, 0x0000, 0x00fd, 0x0000, 0x0000,
676 0x00a8, 0x0000, 0x0008, 0x00a6, 0x00b5, 0x0000, 0x0000, 0x0000,
677 0x0000, 0x0000, 0x0000, 0x006b, 0x0000, 0x0000, 0x00b1, 0x00a2,
678 0x0000, 0x0000, 0x0000, 0x0166, 0x0000,
680 uint32_t h[3];
682 mi_vector_hash(key, keylen, 0x8e1051e9U, h);
683 return (g[h[0] % 789] + g[h[1] % 789]) % 394;
686 const char *
687 _ti_strid(ssize_t idx)
690 if ((size_t)idx > __arraycount(_ti_strids))
691 return NULL;
692 return _ti_strids[idx];
695 ssize_t
696 _ti_strindex(const char *key)
698 uint32_t idx;
700 idx = _ti_strhash((const unsigned char *)key, strlen(key));
701 if (idx > __arraycount(_ti_strids) ||
702 strcmp(key, _ti_strids[idx]) != 0)
703 return -1;
704 return idx;