706 lines
14 KiB
C
706 lines
14 KiB
C
/* $NetBSD: hash.c,v 1.3 2010/02/04 12:25:08 roy Exp $ */
|
|
/* DO NOT EDIT
|
|
* Automatically generated from term.h */
|
|
|
|
#if HAVE_NBTOOL_CONFIG_H
|
|
#include "nbtool_config.h"
|
|
#endif
|
|
|
|
#include <sys/cdefs.h>
|
|
__RCSID("$NetBSD: hash.c,v 1.3 2010/02/04 12:25:08 roy Exp $");
|
|
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <term_private.h>
|
|
#include <term.h>
|
|
|
|
static const char _ti_flagids[][6] = {
|
|
"bw",
|
|
"am",
|
|
"bce",
|
|
"ccc",
|
|
"xhp",
|
|
"xhpa",
|
|
"cpix",
|
|
"crxm",
|
|
"xt",
|
|
"xenl",
|
|
"eo",
|
|
"gn",
|
|
"hc",
|
|
"chts",
|
|
"km",
|
|
"daisy",
|
|
"hs",
|
|
"hls",
|
|
"in",
|
|
"lpix",
|
|
"da",
|
|
"db",
|
|
"mir",
|
|
"msgr",
|
|
"nxon",
|
|
"xsb",
|
|
"npc",
|
|
"ndscr",
|
|
"nrrmc",
|
|
"os",
|
|
"mc5i",
|
|
"xvpa",
|
|
"sam",
|
|
"eslok",
|
|
"hz",
|
|
"ul",
|
|
"xon",
|
|
};
|
|
|
|
#include <stdlib.h>
|
|
|
|
static uint32_t
|
|
_ti_flaghash(const void * __restrict key, size_t keylen)
|
|
{
|
|
static const uint8_t g[75] = {
|
|
0x05, 0x09, 0x03, 0x12, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00,
|
|
0x00, 0x08, 0x00, 0x00, 0x11, 0x24, 0x01, 0x00, 0x19, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00,
|
|
0x00, 0x01, 0x21, 0x09, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00,
|
|
0x1b, 0x16, 0x15, 0x0e, 0x0c, 0x0f, 0x00, 0x15, 0x0a, 0x22,
|
|
0x00, 0x24, 0x1f, 0x00, 0x00, 0x19, 0x00, 0x14, 0x00, 0x14,
|
|
0x05, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x0a, 0x02, 0x00,
|
|
0x00, 0x00, 0x00, 0x23, 0x00,
|
|
};
|
|
uint32_t h[3];
|
|
|
|
mi_vector_hash(key, keylen, 0xe0584cf3U, h);
|
|
return (g[h[0] % 75] + g[h[1] % 75]) % 37;
|
|
}
|
|
|
|
const char *
|
|
_ti_flagid(ssize_t idx)
|
|
{
|
|
|
|
if ((size_t)idx > __arraycount(_ti_flagids))
|
|
return NULL;
|
|
return _ti_flagids[idx];
|
|
}
|
|
|
|
ssize_t
|
|
_ti_flagindex(const char *key)
|
|
{
|
|
uint32_t idx;
|
|
|
|
idx = _ti_flaghash((const unsigned char *)key, strlen(key));
|
|
if (idx > __arraycount(_ti_flagids) ||
|
|
strcmp(key, _ti_flagids[idx]) != 0)
|
|
return -1;
|
|
return idx;
|
|
}
|
|
|
|
static const char _ti_numids[][7] = {
|
|
"bitwin",
|
|
"bitype",
|
|
"bufsz",
|
|
"btns",
|
|
"cols",
|
|
"spinh",
|
|
"spinv",
|
|
"it",
|
|
"lh",
|
|
"lw",
|
|
"lines",
|
|
"lm",
|
|
"ma",
|
|
"xmc",
|
|
"colors",
|
|
"maddr",
|
|
"mjump",
|
|
"pairs",
|
|
"wnum",
|
|
"mcs",
|
|
"mls",
|
|
"ncv",
|
|
"nlab",
|
|
"npins",
|
|
"orc",
|
|
"orl",
|
|
"orhi",
|
|
"orvi",
|
|
"pb",
|
|
"cps",
|
|
"vt",
|
|
"widcs",
|
|
"wsl",
|
|
};
|
|
|
|
#include <stdlib.h>
|
|
|
|
static uint32_t
|
|
_ti_numhash(const void * __restrict key, size_t keylen)
|
|
{
|
|
static const uint8_t g[67] = {
|
|
0x1d, 0x00, 0x07, 0x09, 0x1c, 0x00, 0x0d, 0x15, 0x0f, 0x00,
|
|
0x00, 0x1c, 0x00, 0x11, 0x01, 0x03, 0x03, 0x00, 0x18, 0x06,
|
|
0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x18, 0x00, 0x1e,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x0a, 0x00, 0x00, 0x1a,
|
|
0x00, 0x00, 0x00, 0x0e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x07, 0x0c, 0x00, 0x00, 0x12, 0x1f, 0x00, 0x00,
|
|
0x00, 0x00, 0x0b, 0x05, 0x09, 0x14, 0x0b,
|
|
};
|
|
uint32_t h[3];
|
|
|
|
mi_vector_hash(key, keylen, 0x4bd7de7aU, h);
|
|
return (g[h[0] % 67] + g[h[1] % 67]) % 33;
|
|
}
|
|
|
|
const char *
|
|
_ti_numid(ssize_t idx)
|
|
{
|
|
|
|
if ((size_t)idx > __arraycount(_ti_numids))
|
|
return NULL;
|
|
return _ti_numids[idx];
|
|
}
|
|
|
|
ssize_t
|
|
_ti_numindex(const char *key)
|
|
{
|
|
uint32_t idx;
|
|
|
|
idx = _ti_numhash((const unsigned char *)key, strlen(key));
|
|
if (idx > __arraycount(_ti_numids) ||
|
|
strcmp(key, _ti_numids[idx]) != 0)
|
|
return -1;
|
|
return idx;
|
|
}
|
|
|
|
static const char _ti_strids[][9] = {
|
|
"acsc",
|
|
"scesa",
|
|
"cbt",
|
|
"bel",
|
|
"bicr",
|
|
"binel",
|
|
"birep",
|
|
"cr",
|
|
"cpi",
|
|
"lpi",
|
|
"chr",
|
|
"cvr",
|
|
"csr",
|
|
"rmp",
|
|
"csnm",
|
|
"tbc",
|
|
"mgc",
|
|
"clear",
|
|
"el1",
|
|
"el",
|
|
"ed",
|
|
"csin",
|
|
"colornm",
|
|
"hpa",
|
|
"cmdch",
|
|
"cwin",
|
|
"cup",
|
|
"cud1",
|
|
"home",
|
|
"civis",
|
|
"cub1",
|
|
"mrcup",
|
|
"cnorm",
|
|
"cuf1",
|
|
"ll",
|
|
"cuu1",
|
|
"cvvis",
|
|
"defbi",
|
|
"defc",
|
|
"dch1",
|
|
"dl1",
|
|
"devt",
|
|
"dial",
|
|
"dsl",
|
|
"dclk",
|
|
"dispc",
|
|
"hd",
|
|
"enacs",
|
|
"endbi",
|
|
"smacs",
|
|
"smam",
|
|
"blink",
|
|
"bold",
|
|
"smcup",
|
|
"smdc",
|
|
"dim",
|
|
"swidm",
|
|
"sdrfq",
|
|
"ehhlm",
|
|
"smir",
|
|
"sitm",
|
|
"elhlm",
|
|
"slm",
|
|
"elohlm",
|
|
"smicm",
|
|
"snlq",
|
|
"snrmq",
|
|
"smpch",
|
|
"prot",
|
|
"rev",
|
|
"erhlm",
|
|
"smsc",
|
|
"invis",
|
|
"sshm",
|
|
"smso",
|
|
"ssubm",
|
|
"ssupm",
|
|
"ethlm",
|
|
"smul",
|
|
"sum",
|
|
"evhlm",
|
|
"smxon",
|
|
"ech",
|
|
"rmacs",
|
|
"rmam",
|
|
"sgr0",
|
|
"rmcup",
|
|
"rmdc",
|
|
"rwidm",
|
|
"rmir",
|
|
"ritm",
|
|
"rlm",
|
|
"rmicm",
|
|
"rmpch",
|
|
"rmsc",
|
|
"rshm",
|
|
"rmso",
|
|
"rsubm",
|
|
"rsupm",
|
|
"rmul",
|
|
"rum",
|
|
"rmxon",
|
|
"pause",
|
|
"hook",
|
|
"flash",
|
|
"ff",
|
|
"fsl",
|
|
"getm",
|
|
"wingo",
|
|
"hup",
|
|
"is1",
|
|
"is2",
|
|
"is3",
|
|
"if",
|
|
"iprog",
|
|
"initc",
|
|
"initp",
|
|
"ich1",
|
|
"il1",
|
|
"ip",
|
|
"ka1",
|
|
"ka3",
|
|
"kb2",
|
|
"kbs",
|
|
"kbeg",
|
|
"kcbt",
|
|
"kc1",
|
|
"kc3",
|
|
"kcan",
|
|
"ktbc",
|
|
"kclr",
|
|
"kclo",
|
|
"kcmd",
|
|
"kcpy",
|
|
"kcrt",
|
|
"kctab",
|
|
"kdch1",
|
|
"kdl1",
|
|
"kcud1",
|
|
"krmir",
|
|
"kend",
|
|
"kent",
|
|
"kel",
|
|
"ked",
|
|
"kext",
|
|
"kf0",
|
|
"kf1",
|
|
"kf2",
|
|
"kf3",
|
|
"kf4",
|
|
"kf5",
|
|
"kf6",
|
|
"kf7",
|
|
"kf8",
|
|
"kf9",
|
|
"kf10",
|
|
"kf11",
|
|
"kf12",
|
|
"kf13",
|
|
"kf14",
|
|
"kf15",
|
|
"kf16",
|
|
"kf17",
|
|
"kf18",
|
|
"kf19",
|
|
"kf20",
|
|
"kf21",
|
|
"kf22",
|
|
"kf23",
|
|
"kf24",
|
|
"kf25",
|
|
"kf26",
|
|
"kf27",
|
|
"kf28",
|
|
"kf29",
|
|
"kf30",
|
|
"kf31",
|
|
"kf32",
|
|
"kf33",
|
|
"kf34",
|
|
"kf35",
|
|
"kf36",
|
|
"kf37",
|
|
"kf38",
|
|
"kf39",
|
|
"kf40",
|
|
"kf41",
|
|
"kf42",
|
|
"kf43",
|
|
"kf44",
|
|
"kf45",
|
|
"kf46",
|
|
"kf47",
|
|
"kf48",
|
|
"kf49",
|
|
"kf50",
|
|
"kf51",
|
|
"kf52",
|
|
"kf53",
|
|
"kf54",
|
|
"kf55",
|
|
"kf56",
|
|
"kf57",
|
|
"kf58",
|
|
"kf59",
|
|
"kf60",
|
|
"kf61",
|
|
"kf62",
|
|
"kf63",
|
|
"kfnd",
|
|
"khlp",
|
|
"khome",
|
|
"kich1",
|
|
"kil1",
|
|
"kcub1",
|
|
"kll",
|
|
"kmrk",
|
|
"kmsg",
|
|
"kmous",
|
|
"kmov",
|
|
"knxt",
|
|
"knp",
|
|
"kopn",
|
|
"kopt",
|
|
"kpp",
|
|
"kprv",
|
|
"kprt",
|
|
"krdo",
|
|
"kref",
|
|
"krfr",
|
|
"krpl",
|
|
"krst",
|
|
"kres",
|
|
"kcuf1",
|
|
"ksav",
|
|
"kBEG",
|
|
"kCAN",
|
|
"kCMD",
|
|
"kCPY",
|
|
"kCRT",
|
|
"kDC",
|
|
"kDL",
|
|
"kslt",
|
|
"kEND",
|
|
"kEOL",
|
|
"kEXT",
|
|
"kind",
|
|
"kFND",
|
|
"kHLP",
|
|
"kHOM",
|
|
"kIC",
|
|
"kLFT",
|
|
"kMSG",
|
|
"kMOV",
|
|
"kNXT",
|
|
"kOPT",
|
|
"kPRV",
|
|
"kPRT",
|
|
"kri",
|
|
"kRDO",
|
|
"kRPL",
|
|
"kRIT",
|
|
"kRES",
|
|
"kSAV",
|
|
"kSPD",
|
|
"khts",
|
|
"kUND",
|
|
"kspd",
|
|
"kund",
|
|
"kcuu1",
|
|
"rmkx",
|
|
"smkx",
|
|
"lf0",
|
|
"lf1",
|
|
"lf2",
|
|
"lf3",
|
|
"lf4",
|
|
"lf5",
|
|
"lf6",
|
|
"lf7",
|
|
"lf8",
|
|
"lf9",
|
|
"lf10",
|
|
"fln",
|
|
"rmln",
|
|
"smln",
|
|
"rmm",
|
|
"smm",
|
|
"mhpa",
|
|
"mcud1",
|
|
"mcub1",
|
|
"mcuf1",
|
|
"mvpa",
|
|
"mcuu1",
|
|
"minfo",
|
|
"nel",
|
|
"porder",
|
|
"oc",
|
|
"op",
|
|
"pad",
|
|
"dch",
|
|
"dl",
|
|
"cud",
|
|
"mcud",
|
|
"ich",
|
|
"indn",
|
|
"il",
|
|
"cub",
|
|
"mcub",
|
|
"cuf",
|
|
"mcuf",
|
|
"rin",
|
|
"cuu",
|
|
"mcuu",
|
|
"pctrm",
|
|
"pfkey",
|
|
"pfloc",
|
|
"pfxl",
|
|
"pfx",
|
|
"pln",
|
|
"mc0",
|
|
"mc5p",
|
|
"mc4",
|
|
"mc5",
|
|
"pulse",
|
|
"qdial",
|
|
"rmclk",
|
|
"rep",
|
|
"rfi",
|
|
"reqmp",
|
|
"rs1",
|
|
"rs2",
|
|
"rs3",
|
|
"rf",
|
|
"rc",
|
|
"vpa",
|
|
"sc",
|
|
"scesc",
|
|
"ind",
|
|
"ri",
|
|
"scs",
|
|
"s0ds",
|
|
"s1ds",
|
|
"s2ds",
|
|
"s3ds",
|
|
"sgr1",
|
|
"setab",
|
|
"setaf",
|
|
"sgr",
|
|
"setb",
|
|
"smgb",
|
|
"smgbp",
|
|
"sclk",
|
|
"setcolor",
|
|
"scp",
|
|
"setf",
|
|
"smgl",
|
|
"smglp",
|
|
"smglr",
|
|
"slines",
|
|
"slength",
|
|
"smgr",
|
|
"smgrp",
|
|
"hts",
|
|
"smgtb",
|
|
"smgt",
|
|
"smgtp",
|
|
"wind",
|
|
"sbim",
|
|
"scsd",
|
|
"rbim",
|
|
"rcsd",
|
|
"subcs",
|
|
"supcs",
|
|
"ht",
|
|
"docr",
|
|
"tsl",
|
|
"tone",
|
|
"u0",
|
|
"u1",
|
|
"u2",
|
|
"u3",
|
|
"u4",
|
|
"u5",
|
|
"u6",
|
|
"u7",
|
|
"u8",
|
|
"u9",
|
|
"uc",
|
|
"hu",
|
|
"wait",
|
|
"xoffc",
|
|
"xonc",
|
|
"zerom",
|
|
};
|
|
|
|
#include <stdlib.h>
|
|
|
|
static uint32_t
|
|
_ti_strhash(const void * __restrict key, size_t keylen)
|
|
{
|
|
static const uint16_t g[789] = {
|
|
0x0000, 0x0000, 0x0000, 0x007f, 0x000c, 0x0026, 0x00d7, 0x0000,
|
|
0x000e, 0x0000, 0x00dc, 0x0000, 0x0000, 0x0153, 0x0000, 0x0000,
|
|
0x0003, 0x0000, 0x0180, 0x00bd, 0x0066, 0x0067, 0x000a, 0x00a4,
|
|
0x0036, 0x00b8, 0x0000, 0x00a6, 0x0000, 0x0186, 0x000d, 0x0000,
|
|
0x0000, 0x0000, 0x0000, 0x00e2, 0x0000, 0x0088, 0x00bc, 0x0075,
|
|
0x0000, 0x007e, 0x00ef, 0x0000, 0x0000, 0x0000, 0x00fe, 0x0159,
|
|
0x0093, 0x0000, 0x0074, 0x0000, 0x003d, 0x0000, 0x0000, 0x0000,
|
|
0x00f6, 0x0000, 0x0117, 0x0000, 0x0022, 0x0000, 0x00a1, 0x0000,
|
|
0x0000, 0x0000, 0x000a, 0x0000, 0x00ed, 0x012c, 0x014d, 0x005a,
|
|
0x016a, 0x0102, 0x0000, 0x0000, 0x012d, 0x0066, 0x005a, 0x0000,
|
|
0x0000, 0x0000, 0x00e5, 0x010f, 0x010b, 0x006d, 0x0000, 0x00f3,
|
|
0x0000, 0x0131, 0x012e, 0x0176, 0x0000, 0x0000, 0x0096, 0x0000,
|
|
0x00de, 0x0000, 0x00bb, 0x001e, 0x0000, 0x010e, 0x0000, 0x0000,
|
|
0x010c, 0x004c, 0x002e, 0x0000, 0x00cb, 0x0165, 0x0180, 0x00e1,
|
|
0x0013, 0x001d, 0x0000, 0x0000, 0x0000, 0x0000, 0x001a, 0x00d2,
|
|
0x007b, 0x0043, 0x0091, 0x00f2, 0x0000, 0x0000, 0x016f, 0x00a0,
|
|
0x000f, 0x0000, 0x017e, 0x006d, 0x0001, 0x00d6, 0x0000, 0x0087,
|
|
0x0000, 0x0000, 0x0120, 0x015d, 0x0000, 0x0000, 0x00cf, 0x0000,
|
|
0x00aa, 0x0000, 0x003e, 0x0084, 0x00ca, 0x00bb, 0x0000, 0x0138,
|
|
0x005c, 0x0000, 0x009c, 0x0000, 0x0000, 0x0000, 0x013e, 0x0000,
|
|
0x0000, 0x0000, 0x0011, 0x00a5, 0x00de, 0x00b4, 0x012f, 0x0000,
|
|
0x0000, 0x0011, 0x0000, 0x0000, 0x007a, 0x009e, 0x0000, 0x0083,
|
|
0x003d, 0x00a0, 0x0000, 0x011b, 0x0000, 0x0000, 0x00d8, 0x0000,
|
|
0x0000, 0x00e1, 0x001c, 0x0153, 0x010b, 0x0000, 0x0081, 0x0020,
|
|
0x0000, 0x00ef, 0x0000, 0x0000, 0x00cc, 0x0068, 0x0000, 0x0000,
|
|
0x0000, 0x0000, 0x00eb, 0x0000, 0x0000, 0x0000, 0x0061, 0x0052,
|
|
0x0000, 0x0000, 0x008a, 0x0016, 0x00f4, 0x00ed, 0x013d, 0x0143,
|
|
0x0000, 0x00f2, 0x0000, 0x0000, 0x002c, 0x0189, 0x0115, 0x0000,
|
|
0x007c, 0x00b0, 0x00fc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
|
0x00dc, 0x0000, 0x0025, 0x0000, 0x0162, 0x0000, 0x010b, 0x0000,
|
|
0x0138, 0x0000, 0x0114, 0x017c, 0x0160, 0x0000, 0x0000, 0x0000,
|
|
0x0000, 0x0178, 0x00a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
|
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x017f, 0x0051, 0x0184,
|
|
0x00c9, 0x00d7, 0x0000, 0x0000, 0x0000, 0x00e7, 0x00db, 0x0056,
|
|
0x0000, 0x0000, 0x0000, 0x0000, 0x00ac, 0x0000, 0x0000, 0x0000,
|
|
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d5, 0x0000,
|
|
0x0000, 0x0000, 0x00ae, 0x0048, 0x00bf, 0x0000, 0x0000, 0x0013,
|
|
0x010e, 0x0000, 0x0000, 0x0061, 0x0000, 0x0000, 0x0152, 0x0000,
|
|
0x0000, 0x0007, 0x013b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0157,
|
|
0x0000, 0x0000, 0x003d, 0x0000, 0x0000, 0x0000, 0x0114, 0x0037,
|
|
0x0000, 0x0000, 0x0058, 0x0000, 0x0000, 0x0065, 0x015b, 0x00af,
|
|
0x0000, 0x00bd, 0x0081, 0x015e, 0x0132, 0x0000, 0x0000, 0x011b,
|
|
0x004e, 0x0000, 0x006f, 0x0000, 0x0000, 0x0000, 0x0147, 0x0059,
|
|
0x014c, 0x0116, 0x0000, 0x0000, 0x0142, 0x0016, 0x0000, 0x00bd,
|
|
0x0167, 0x0000, 0x0011, 0x0000, 0x0000, 0x0000, 0x000e, 0x008d,
|
|
0x0000, 0x0000, 0x012b, 0x00c9, 0x0000, 0x010f, 0x0000, 0x0000,
|
|
0x0000, 0x0099, 0x0082, 0x0000, 0x0034, 0x0000, 0x0000, 0x0000,
|
|
0x0000, 0x0000, 0x0000, 0x0000, 0x0023, 0x0035, 0x0171, 0x0133,
|
|
0x0000, 0x007f, 0x0000, 0x0000, 0x0000, 0x0189, 0x00c7, 0x00ec,
|
|
0x0000, 0x002d, 0x0098, 0x0000, 0x0047, 0x0000, 0x00a7, 0x0160,
|
|
0x0188, 0x0000, 0x0166, 0x00b6, 0x0000, 0x0000, 0x004a, 0x0000,
|
|
0x00e4, 0x0000, 0x00c7, 0x008f, 0x009d, 0x014d, 0x0071, 0x0140,
|
|
0x00f8, 0x00ab, 0x0054, 0x0013, 0x0109, 0x004d, 0x0000, 0x00f0,
|
|
0x013e, 0x016f, 0x0000, 0x0000, 0x00a7, 0x0000, 0x011b, 0x005c,
|
|
0x00c0, 0x011b, 0x0175, 0x0000, 0x0000, 0x00f7, 0x00be, 0x0000,
|
|
0x0000, 0x0000, 0x0000, 0x00b3, 0x00dc, 0x0033, 0x0000, 0x0000,
|
|
0x0000, 0x0000, 0x0000, 0x010d, 0x0113, 0x0000, 0x00aa, 0x002e,
|
|
0x0042, 0x0070, 0x00a6, 0x0000, 0x0000, 0x0000, 0x012e, 0x0000,
|
|
0x0000, 0x0000, 0x009c, 0x0084, 0x003c, 0x001b, 0x00db, 0x005d,
|
|
0x0172, 0x0000, 0x0000, 0x0138, 0x0000, 0x00eb, 0x0000, 0x0162,
|
|
0x0000, 0x0000, 0x0091, 0x0169, 0x0141, 0x0000, 0x005c, 0x0121,
|
|
0x0000, 0x0000, 0x0146, 0x0000, 0x0000, 0x0043, 0x0000, 0x0000,
|
|
0x00c6, 0x0000, 0x0000, 0x0000, 0x0000, 0x009d, 0x0165, 0x00d6,
|
|
0x0139, 0x0000, 0x0000, 0x0007, 0x0000, 0x0000, 0x0000, 0x0000,
|
|
0x0154, 0x00e5, 0x00a8, 0x0000, 0x0000, 0x008e, 0x0174, 0x0156,
|
|
0x0000, 0x014c, 0x0000, 0x017d, 0x017e, 0x0000, 0x0000, 0x0000,
|
|
0x0000, 0x0000, 0x0117, 0x0000, 0x0000, 0x0000, 0x016d, 0x0000,
|
|
0x0000, 0x0000, 0x0103, 0x0000, 0x0000, 0x0000, 0x0143, 0x0000,
|
|
0x0000, 0x0040, 0x0000, 0x013a, 0x002e, 0x0000, 0x0000, 0x0000,
|
|
0x0000, 0x0085, 0x0000, 0x0000, 0x00b7, 0x0000, 0x0058, 0x00f5,
|
|
0x0055, 0x0000, 0x0000, 0x0028, 0x0000, 0x0000, 0x0126, 0x0029,
|
|
0x0000, 0x013f, 0x0000, 0x0117, 0x0000, 0x0000, 0x0000, 0x0129,
|
|
0x0019, 0x0120, 0x0000, 0x00a4, 0x0009, 0x0000, 0x00cf, 0x0000,
|
|
0x0000, 0x0000, 0x0000, 0x0096, 0x0000, 0x0098, 0x0000, 0x00a7,
|
|
0x0088, 0x0000, 0x013a, 0x0000, 0x0000, 0x002c, 0x00cc, 0x0000,
|
|
0x007e, 0x0000, 0x0000, 0x014f, 0x0000, 0x0066, 0x0092, 0x0000,
|
|
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x015e,
|
|
0x0153, 0x0000, 0x0000, 0x0095, 0x0000, 0x00ac, 0x013b, 0x0000,
|
|
0x00fa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x009b, 0x0000,
|
|
0x0000, 0x0160, 0x0099, 0x0000, 0x0177, 0x0000, 0x00fe, 0x0000,
|
|
0x0000, 0x00e3, 0x011b, 0x0046, 0x0000, 0x0000, 0x0000, 0x012a,
|
|
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
|
0x0030, 0x011f, 0x00e6, 0x0000, 0x00b5, 0x0063, 0x0000, 0x012a,
|
|
0x0000, 0x0000, 0x0183, 0x0000, 0x0000, 0x006a, 0x00c4, 0x0000,
|
|
0x0000, 0x0131, 0x0000, 0x0000, 0x0008, 0x0000, 0x0000, 0x005d,
|
|
0x0006, 0x0022, 0x0000, 0x003e, 0x0000, 0x0147, 0x0000, 0x0000,
|
|
0x0000, 0x002b, 0x0060, 0x0066, 0x0000, 0x0000, 0x000c, 0x00d0,
|
|
0x00c5, 0x0042, 0x0000, 0x0000, 0x0000, 0x00e8, 0x0188, 0x00eb,
|
|
0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x00ae, 0x0000, 0x0147,
|
|
0x0000, 0x0000, 0x0000, 0x012d, 0x0000, 0x0000, 0x0084, 0x0033,
|
|
0x00fc, 0x0000, 0x00a1, 0x0008, 0x0180, 0x00e4, 0x0000, 0x00fd,
|
|
0x00df, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0017, 0x0160,
|
|
0x0000, 0x0000, 0x0000, 0x0000, 0x015e, 0x0000, 0x0097, 0x0000,
|
|
0x012b, 0x015c, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
|
0x0000, 0x00cd, 0x0014, 0x002f, 0x0048, 0x00c4, 0x010a, 0x0051,
|
|
0x017c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0113,
|
|
0x0168, 0x004a, 0x002d, 0x00e6, 0x0066, 0x00d9, 0x0134, 0x0000,
|
|
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0064, 0x013f,
|
|
0x00b0, 0x0000, 0x00d8, 0x00b6, 0x0000,
|
|
};
|
|
uint32_t h[3];
|
|
|
|
mi_vector_hash(key, keylen, 0xec8e9cf6U, h);
|
|
return (g[h[0] % 789] + g[h[1] % 789]) % 394;
|
|
}
|
|
|
|
const char *
|
|
_ti_strid(ssize_t idx)
|
|
{
|
|
|
|
if ((size_t)idx > __arraycount(_ti_strids))
|
|
return NULL;
|
|
return _ti_strids[idx];
|
|
}
|
|
|
|
ssize_t
|
|
_ti_strindex(const char *key)
|
|
{
|
|
uint32_t idx;
|
|
|
|
idx = _ti_strhash((const unsigned char *)key, strlen(key));
|
|
if (idx > __arraycount(_ti_strids) ||
|
|
strcmp(key, _ti_strids[idx]) != 0)
|
|
return -1;
|
|
return idx;
|
|
}
|