Changeset View
Changeset View
Standalone View
Standalone View
contrib/mg/hash.c
- This file was added.
| /* DO NOT EDIT | |||||
| * Automatically generated from term.h */ | |||||
| #if HAVE_NBTOOL_CONFIG_H | |||||
| #include "nbtool_config.h" | |||||
| #endif | |||||
| #include <stdint.h> | |||||
| #include <stdlib.h> | |||||
| #include <string.h> | |||||
| #include "term_private.h" | |||||
| #include "terminfo_term.h" | |||||
| #ifndef __arraycount | |||||
| #define __arraycount(__x) (sizeof(__x) / sizeof(__x[0])) | |||||
| #endif | |||||
| extern void mi_vector_hash(const void * __restrict, size_t, uint32_t, | |||||
| uint32_t[3]); | |||||
| 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] = { | |||||
| 0x13, 0x06, 0x00, 0x17, 0x1f, 0x20, 0x23, 0x00, 0x00, 0x12, | |||||
| 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0d, 0x22, 0x00, | |||||
| 0x00, 0x00, 0x00, 0x0b, 0x00, 0x11, 0x02, 0x03, 0x18, 0x00, | |||||
| 0x00, 0x00, 0x00, 0x15, 0x00, 0x22, 0x02, 0x09, 0x04, 0x08, | |||||
| 0x00, 0x00, 0x00, 0x0d, 0x00, 0x1f, 0x22, 0x24, 0x1b, 0x19, | |||||
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, | |||||
| 0x00, 0x16, 0x00, 0x18, 0x1d, 0x17, 0x00, 0x00, 0x0f, 0x07, | |||||
| 0x00, 0x00, 0x00, 0x00, 0x05, | |||||
| }; | |||||
| uint32_t h[3]; | |||||
| mi_vector_hash(key, keylen, 0x00000000U, 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] = { | |||||
| 0x0b, 0x01, 0x16, 0x00, 0x00, 0x11, 0x1b, 0x00, 0x00, 0x00, | |||||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1b, 0x01, 0x00, 0x05, | |||||
| 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||||
| 0x00, 0x18, 0x04, 0x02, 0x00, 0x0f, 0x00, 0x02, 0x1f, 0x06, | |||||
| 0x15, 0x00, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, | |||||
| 0x06, 0x00, 0x00, 0x11, 0x0d, 0x1e, 0x19, 0x0a, 0x00, 0x06, | |||||
| 0x00, 0x04, 0x1c, 0x00, 0x10, 0x00, 0x0c, | |||||
| }; | |||||
| uint32_t h[3]; | |||||
| mi_vector_hash(key, keylen, 0x00000000U, 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, 0x0081, 0x003c, 0x0000, 0x00db, 0x0123, | |||||
| 0x0000, 0x0045, 0x0000, 0x0000, 0x0000, 0x00b1, 0x0131, 0x0096, | |||||
| 0x0000, 0x006a, 0x0160, 0x0000, 0x0172, 0x0138, 0x0000, 0x0000, | |||||
| 0x00a4, 0x00bd, 0x0127, 0x0084, 0x0067, 0x0109, 0x008f, 0x0000, | |||||
| 0x0000, 0x017c, 0x0000, 0x0053, 0x0156, 0x0000, 0x0000, 0x0000, | |||||
| 0x00b3, 0x0000, 0x00b9, 0x0096, 0x0058, 0x00b6, 0x00fc, 0x0000, | |||||
| 0x0058, 0x0000, 0x017d, 0x0000, 0x0006, 0x0000, 0x011f, 0x0000, | |||||
| 0x0000, 0x00bb, 0x0021, 0x0151, 0x00c7, 0x008c, 0x0000, 0x0058, | |||||
| 0x008a, 0x011a, 0x0093, 0x0000, 0x0000, 0x0000, 0x013e, 0x0163, | |||||
| 0x0000, 0x0000, 0x0000, 0x0047, 0x0110, 0x00be, 0x0000, 0x001e, | |||||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b1, 0x0000, 0x0000, | |||||
| 0x0000, 0x0000, 0x00c5, 0x0034, 0x0181, 0x00be, 0x0094, 0x0000, | |||||
| 0x0103, 0x002a, 0x0072, 0x0000, 0x0000, 0x0000, 0x0085, 0x0000, | |||||
| 0x00d5, 0x0000, 0x0000, 0x0000, 0x00c3, 0x0158, 0x00f6, 0x0000, | |||||
| 0x00e3, 0x0000, 0x0076, 0x0055, 0x016c, 0x0000, 0x008b, 0x0013, | |||||
| 0x0000, 0x0000, 0x0183, 0x0000, 0x016a, 0x0152, 0x0183, 0x0013, | |||||
| 0x0000, 0x0000, 0x0032, 0x0043, 0x006c, 0x012c, 0x0000, 0x0000, | |||||
| 0x0155, 0x0073, 0x0000, 0x0000, 0x0168, 0x0000, 0x0000, 0x0000, | |||||
| 0x0078, 0x001b, 0x00d2, 0x0020, 0x0000, 0x0000, 0x0015, 0x0000, | |||||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0090, 0x00fb, 0x0007, 0x0000, | |||||
| 0x0000, 0x00ee, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c2, | |||||
| 0x0095, 0x0034, 0x0089, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||||
| 0x0000, 0x0000, 0x0022, 0x00b9, 0x0173, 0x0157, 0x0000, 0x0000, | |||||
| 0x0000, 0x0129, 0x0000, 0x000f, 0x0000, 0x0000, 0x0000, 0x0000, | |||||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x00ef, 0x0000, 0x0000, 0x00a4, | |||||
| 0x0000, 0x0000, 0x0000, 0x0168, 0x00ec, 0x0000, 0x0000, 0x0000, | |||||
| 0x0000, 0x016d, 0x0000, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, | |||||
| 0x00e3, 0x0000, 0x0000, 0x0000, 0x00d1, 0x0000, 0x0000, 0x006b, | |||||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0063, | |||||
| 0x0000, 0x004b, 0x0175, 0x00ab, 0x011f, 0x0000, 0x0000, 0x003d, | |||||
| 0x0000, 0x0105, 0x007a, 0x013e, 0x0000, 0x013b, 0x0127, 0x000a, | |||||
| 0x00ee, 0x0044, 0x0068, 0x013d, 0x008d, 0x0000, 0x0000, 0x0000, | |||||
| 0x012a, 0x00f8, 0x0077, 0x0000, 0x0000, 0x0048, 0x0000, 0x0155, | |||||
| 0x0000, 0x0107, 0x0159, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||||
| 0x0000, 0x0073, 0x010f, 0x0166, 0x00fa, 0x0117, 0x0000, 0x0034, | |||||
| 0x0000, 0x0000, 0x00d0, 0x0000, 0x001d, 0x012f, 0x0000, 0x0000, | |||||
| 0x017e, 0x0019, 0x0000, 0x0087, 0x0000, 0x0000, 0x013e, 0x013a, | |||||
| 0x0000, 0x0125, 0x0000, 0x0023, 0x014b, 0x0000, 0x0000, 0x0000, | |||||
| 0x009d, 0x0133, 0x0000, 0x0000, 0x017d, 0x0000, 0x0000, 0x0000, | |||||
| 0x0081, 0x0183, 0x0000, 0x0000, 0x0000, 0x00b7, 0x0000, 0x0000, | |||||
| 0x0000, 0x012a, 0x0112, 0x0000, 0x0000, 0x0102, 0x0000, 0x0074, | |||||
| 0x0000, 0x0000, 0x012d, 0x0179, 0x00aa, 0x0000, 0x00be, 0x0000, | |||||
| 0x0000, 0x0164, 0x0161, 0x002c, 0x0030, 0x0000, 0x00ae, 0x013f, | |||||
| 0x00ba, 0x0075, 0x0000, 0x00bd, 0x0000, 0x0086, 0x0000, 0x0000, | |||||
| 0x0188, 0x008e, 0x0000, 0x00e1, 0x007f, 0x0000, 0x0116, 0x0000, | |||||
| 0x0000, 0x0000, 0x011a, 0x015a, 0x0000, 0x00a0, 0x0000, 0x0000, | |||||
| 0x0000, 0x0000, 0x0076, 0x0000, 0x000d, 0x0044, 0x016e, 0x0000, | |||||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x011d, 0x00aa, 0x0064, 0x0010, | |||||
| 0x0000, 0x003e, 0x0000, 0x0000, 0x0117, 0x00a4, 0x0063, 0x0000, | |||||
| 0x012b, 0x0000, 0x0000, 0x012b, 0x0031, 0x0074, 0x0044, 0x0000, | |||||
| 0x017f, 0x0017, 0x0179, 0x0041, 0x0000, 0x004c, 0x0041, 0x0000, | |||||
| 0x0061, 0x000d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0064, | |||||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a2, 0x0000, 0x00a3, | |||||
| 0x011b, 0x014e, 0x0000, 0x00be, 0x0000, 0x006e, 0x00d3, 0x0000, | |||||
| 0x0000, 0x0000, 0x0180, 0x0000, 0x00a1, 0x0000, 0x0000, 0x00e6, | |||||
| 0x0000, 0x0000, 0x0089, 0x0000, 0x0000, 0x00d0, 0x009f, 0x0032, | |||||
| 0x0000, 0x0000, 0x00e8, 0x00d9, 0x0000, 0x0002, 0x004b, 0x0000, | |||||
| 0x0000, 0x0129, 0x0000, 0x016b, 0x0104, 0x0163, 0x0000, 0x0000, | |||||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0165, 0x0000, | |||||
| 0x0000, 0x0000, 0x0155, 0x0017, 0x00c3, 0x0069, 0x0000, 0x00e2, | |||||
| 0x0000, 0x0000, 0x0000, 0x0092, 0x0000, 0x00b0, 0x0045, 0x0107, | |||||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||||
| 0x0103, 0x0000, 0x0000, 0x0000, 0x0034, 0x0000, 0x0130, 0x0000, | |||||
| 0x0000, 0x00cb, 0x0000, 0x0000, 0x0138, 0x00e7, 0x009a, 0x0000, | |||||
| 0x0000, 0x0000, 0x0000, 0x0119, 0x0000, 0x0000, 0x0120, 0x0000, | |||||
| 0x00c0, 0x012a, 0x008e, 0x0000, 0x0012, 0x014a, 0x0000, 0x0000, | |||||
| 0x0000, 0x009c, 0x0000, 0x00fc, 0x0000, 0x0121, 0x001f, 0x016b, | |||||
| 0x0000, 0x0000, 0x0021, 0x00fd, 0x0022, 0x00af, 0x0051, 0x0000, | |||||
| 0x00d6, 0x0000, 0x0000, 0x00d0, 0x010e, 0x0000, 0x0000, 0x00c1, | |||||
| 0x0159, 0x0000, 0x00b8, 0x0000, 0x0000, 0x010f, 0x0024, 0x0115, | |||||
| 0x0109, 0x0000, 0x001b, 0x0000, 0x00b5, 0x00d8, 0x0039, 0x00de, | |||||
| 0x0000, 0x008f, 0x011d, 0x004a, 0x0000, 0x00a5, 0x00ea, 0x0144, | |||||
| 0x0000, 0x0027, 0x016f, 0x014e, 0x000b, 0x002c, 0x014b, 0x000a, | |||||
| 0x0046, 0x00b3, 0x00bb, 0x0180, 0x0000, 0x0000, 0x0157, 0x0000, | |||||
| 0x0057, 0x0000, 0x0000, 0x00d1, 0x0181, 0x00d1, 0x0000, 0x0000, | |||||
| 0x0000, 0x0000, 0x0078, 0x00e3, 0x0000, 0x0000, 0x0000, 0x0036, | |||||
| 0x00d0, 0x0000, 0x0000, 0x0000, 0x0065, 0x0140, 0x0000, 0x0000, | |||||
| 0x0000, 0x006f, 0x00a4, 0x0107, 0x0000, 0x0000, 0x0000, 0x0046, | |||||
| 0x0000, 0x00b4, 0x015b, 0x0000, 0x004d, 0x0000, 0x0000, 0x0000, | |||||
| 0x0041, 0x0111, 0x00ff, 0x0000, 0x0000, 0x0000, 0x00a5, 0x0086, | |||||
| 0x007d, 0x0162, 0x0000, 0x00f5, 0x0000, 0x0080, 0x0079, 0x0000, | |||||
| 0x0000, 0x0000, 0x0000, 0x00a6, 0x00e7, 0x0172, 0x0000, 0x0000, | |||||
| 0x00dd, 0x0000, 0x001e, 0x0136, 0x0000, 0x0000, 0x00fb, 0x00e6, | |||||
| 0x0099, 0x0159, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ff, 0x0000, | |||||
| 0x0000, 0x014b, 0x0000, 0x0000, 0x0000, 0x000b, 0x0000, 0x0000, | |||||
| 0x017d, 0x0000, 0x009a, 0x012e, 0x0135, 0x0000, 0x0000, 0x015c, | |||||
| 0x0171, 0x0000, 0x0000, 0x0036, 0x010f, 0x000b, 0x0171, 0x00f9, | |||||
| 0x0000, 0x0000, 0x00cb, 0x0000, 0x0000, 0x0000, 0x005a, 0x0091, | |||||
| 0x0000, 0x0135, 0x004c, 0x0118, 0x0000, 0x0000, 0x0000, 0x0138, | |||||
| 0x0000, 0x0000, 0x016e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||||
| 0x0041, 0x0000, 0x00b1, 0x0119, 0x0000, 0x0111, 0x0111, 0x0146, | |||||
| 0x0059, 0x0005, 0x0000, 0x0000, 0x0186, 0x0000, 0x014a, 0x00df, | |||||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x015f, | |||||
| 0x0000, 0x0000, 0x0000, 0x0163, 0x0000, 0x0000, 0x000c, 0x0000, | |||||
| 0x0000, 0x00dd, 0x0000, 0x0000, 0x00f9, 0x0000, 0x0000, 0x0164, | |||||
| 0x0176, 0x00bf, 0x0133, 0x0032, 0x013a, 0x0000, 0x0000, 0x0000, | |||||
| 0x0000, 0x0088, 0x015d, 0x00b8, 0x0078, 0x005b, 0x0000, 0x0027, | |||||
| 0x017e, 0x0000, 0x007c, 0x011f, 0x0000, 0x0000, 0x0169, 0x0000, | |||||
| 0x00f2, 0x0000, 0x00b2, 0x00e1, 0x010d, | |||||
| }; | |||||
| uint32_t h[3]; | |||||
| mi_vector_hash(key, keylen, 0x00000001U, 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; | |||||
| } | |||||