diff --git a/client/cmdcrc.c b/client/cmdcrc.c index 25653dbab..a34c7d351 100644 --- a/client/cmdcrc.c +++ b/client/cmdcrc.c @@ -39,8 +39,7 @@ int split(char *str, char *arr[MAX_ARGS]){ return wordCnt; } -int CmdCrc(const char *Cmd) -{ +int CmdCrc(const char *Cmd) { char name[] = {"reveng "}; char Cmd2[100 + 7]; memcpy(Cmd2, name, 7); @@ -198,6 +197,11 @@ int GetModels(char *Models[], int *count, uint8_t *width){ pfree(qptr); } } + if(uflags & C_NOBFS && ~rflags & R_HAVEP) { + PrintAndLogEx(WARNING, "no models found"); + return 0; + } + if (!(model.flags & P_REFIN) != !(model.flags & P_REFOUT)){ PrintAndLogEx(WARNING, "cannot search for crossed-endian models"); return 0; @@ -259,8 +263,9 @@ int RunModel(char *inModel, char *inHexStr, bool reverse, char endian, char *res SETBMP(); //set model - if (!(c = mbynam(&model, inModel))) { - PrintAndLogEx(WARNING, "error: preset model '%s' not found. Use reveng -D to list presets.", inModel); + c = mbynam(&model, inModel); + if (!c) { + PrintAndLogEx(WARNING, "error: preset model '%s' not found. Use reveng -D to list presets. [%d]", inModel, c); return 0; } if (c < 0){ @@ -396,7 +401,7 @@ char *SwapEndianStr(const char *inStr, const size_t len, const uint8_t blockSize // takes hex string in and searches for a matching result (hex string must include checksum) int CmdrevengSearch(const char *Cmd){ -#define NMODELS 103 +#define NMODELS 105 char inHexStr[100] = {0x00}; int dataLen = param_getstr(Cmd, 0, inHexStr, sizeof(inHexStr)); @@ -432,7 +437,7 @@ int CmdrevengSearch(const char *Cmd){ char *outHex = calloc(dataLen-crcChars+1, sizeof(char)); memcpy(outHex, inHexStr, dataLen-crcChars); - // PrintAndLogEx(DEBUG, "DEBUG: dataLen: %d, crcChars: %d, Model: %s, CRC: %s, width: %d, outHex: %s",dataLen, crcChars, Models[i], inCRC, width[i], outHex); + PrintAndLogEx(DEBUG, "DEBUG: dataLen: %d, crcChars: %d, Model: %s, CRC: %s, width: %d, outHex: %s",dataLen, crcChars, Models[i], inCRC, width[i], outHex); ans = RunModel(Models[i], outHex, false, 0, result); if (ans) { // test for match diff --git a/client/reveng/model.c b/client/reveng/model.c index 60870d80a..f99b1ee02 100644 --- a/client/reveng/model.c +++ b/client/reveng/model.c @@ -121,7 +121,7 @@ char * mtostr(const model_t *model) { if ((string = malloc(size))) { sprintf(strbuf, "\"%s\"", model->name); sprintf(string, - "width=%lu" + "width=%lu " "poly=0x%s " "init=0x%s " "refin=%s " diff --git a/client/reveng/preset.c b/client/reveng/preset.c index 9e7b721ff..6dbedaed9 100644 --- a/client/reveng/preset.c +++ b/client/reveng/preset.c @@ -1,5 +1,5 @@ /* preset.c - * Greg Cook, 26/Jul/2018 + * Greg Cook, 21/Nov/2018 */ /* CRC RevEng: arbitrary-precision CRC calculator and algorithm finder @@ -22,7 +22,9 @@ * along with CRC RevEng. If not, see . */ -/* 2018-07-26: added CRC-24/OS-9 +/* 2018-11-21: added CRC-8/NRSC-5, CRC-16/NRSC-5 + * 2018-11-21: renamed algorithms, new aliases, added classes + * 2018-07-26: added CRC-24/OS-9 * 2018-07-26: struct malias.name declared const char *const * 2017-06-19: added CRC-8/BLUETOOTH, CRC-17/CAN-FD, CRC-21/CAN-FD * 2017-02-18: added 8 new GSM algorithms @@ -269,200 +271,203 @@ static const bmp_t b32[] = { BMP_C(0x04c11db7) << (BMP_BIT - 32), /* 8 -- 32,04c11db7 */ BMP_C(0x05890000) << (BMP_BIT - 32), /* 9 -- 16, 0589 */ BMP_C(0x07000000) << (BMP_BIT - 32), /* 10 -- 8, 07 */ - BMP_C(0x09823b6e) << (BMP_BIT - 32), /* 11 -- 31,04c11db7 */ - BMP_C(0x0b3c0000) << (BMP_BIT - 32), /* 12 -- 15, 059e */ - BMP_C(0x0c000000) << (BMP_BIT - 32), /* 13 -- 6, 03 */ - BMP_C(0x0c200000) << (BMP_BIT - 32), /* 14 -- 11, 061 */ - BMP_C(0x0c780000) << (BMP_BIT - 32), /* 15 -- 14, 031e */ - BMP_C(0x0fb30000) << (BMP_BIT - 32), /* 16 -- 16, 0fb3 */ - BMP_C(0x10210000) << (BMP_BIT - 32), /* 17 -- 16, 1021 */ - BMP_C(0x12000000) << (BMP_BIT - 32), /* 18 -- 7, 09 */ - BMP_C(0x130d2afc) << (BMP_BIT - 32), /* 19 -- 30,04c34abf */ - BMP_C(0x144e6300) << (BMP_BIT - 32), /* 20 -- 24, 144e63 */ - BMP_C(0x15000000) << (BMP_BIT - 32), /* 21 -- 8, 15 */ - BMP_C(0x1697d06a) << (BMP_BIT - 32), /* 22 -- 32,1697d06a */ - BMP_C(0x17800000) << (BMP_BIT - 32), /* 23 -- 12, 178 */ - BMP_C(0x18000000) << (BMP_BIT - 32), /* 24 -- 6, 06 */ - BMP_C(0x19d3c8d8) << (BMP_BIT - 32), /* 25 -- 31,0ce9e46c */ - BMP_C(0x1c000000) << (BMP_BIT - 32), /* 26 -- 6, 07 */ - BMP_C(0x1d000000) << (BMP_BIT - 32), /* 27 -- 8, 1d */ - BMP_C(0x1d0f0000) << (BMP_BIT - 32), /* 28 -- 16, 1d0f */ - BMP_C(0x1dcf0000) << (BMP_BIT - 32), /* 29 -- 16, 1dcf */ - BMP_C(0x1edc6f41) << (BMP_BIT - 32), /* 30 -- 32,1edc6f41 */ - BMP_C(0x1f23b800) << (BMP_BIT - 32), /* 31 -- 24, 1f23b8 */ - BMP_C(0x20000000) << (BMP_BIT - 32), /* 32 -- 4, 2 */ - BMP_C(0x200fa500) << (BMP_BIT - 32), /* 33 -- 24, 200fa5 */ - BMP_C(0x20140000) << (BMP_BIT - 32), /* 34 -- 14, 0805 */ - BMP_C(0x20b40000) << (BMP_BIT - 32), /* 35 -- 14, 082d */ - BMP_C(0x20fe0000) << (BMP_BIT - 32), /* 36 -- 16, 20fe */ - BMP_C(0x21890000) << (BMP_BIT - 32), /* 37 -- 16, 2189 */ - BMP_C(0x21cf0200) << (BMP_BIT - 32), /* 38 -- 24, 21cf02 */ - BMP_C(0x23ef5200) << (BMP_BIT - 32), /* 39 -- 24, 23ef52 */ - BMP_C(0x25000000) << (BMP_BIT - 32), /* 40 -- 8, 25 */ - BMP_C(0x26000000) << (BMP_BIT - 32), /* 41 -- 8, 26 */ - BMP_C(0x26b10000) << (BMP_BIT - 32), /* 42 -- 16, 26b1 */ - BMP_C(0x27818000) << (BMP_BIT - 32), /* 43 -- 17, 04f03 */ - BMP_C(0x27d00000) << (BMP_BIT - 32), /* 44 -- 13, 04fa */ - BMP_C(0x28000000) << (BMP_BIT - 32), /* 45 -- 5, 05 */ - BMP_C(0x29b10000) << (BMP_BIT - 32), /* 46 -- 16, 29b1 */ - BMP_C(0x2f000000) << (BMP_BIT - 32), /* 47 -- 8, 2f */ - BMP_C(0x30000000) << (BMP_BIT - 32), /* 48 -- 4, 3/ 5, 6 */ - BMP_C(0x3010bf7f) << (BMP_BIT - 32), /* 49 -- 32,3010bf7f */ - BMP_C(0x31000000) << (BMP_BIT - 32), /* 50 -- 8, 31 */ - BMP_C(0x31800000) << (BMP_BIT - 32), /* 51 -- 10, 0c6 */ - BMP_C(0x31c30000) << (BMP_BIT - 32), /* 52 -- 16, 31c3 */ - BMP_C(0x328b6300) << (BMP_BIT - 32), /* 53 -- 24, 328b63 */ - BMP_C(0x34000000) << (BMP_BIT - 32), /* 54 -- 6, 0d */ - BMP_C(0x340bc6d9) << (BMP_BIT - 32), /* 55 -- 32,340bc6d9 */ - BMP_C(0x37000000) << (BMP_BIT - 32), /* 56 -- 8, 37 */ - BMP_C(0x38000000) << (BMP_BIT - 32), /* 57 -- 5, 07 */ - BMP_C(0x39000000) << (BMP_BIT - 32), /* 58 -- 8, 39 */ - BMP_C(0x3d650000) << (BMP_BIT - 32), /* 59 -- 16, 3d65 */ - BMP_C(0x3e000000) << (BMP_BIT - 32), /* 60 -- 8, 3e */ - BMP_C(0x40000000) << (BMP_BIT - 32), /* 61 -- 3, 2 */ - BMP_C(0x42000000) << (BMP_BIT - 32), /* 62 -- 8, 42 */ - BMP_C(0x44c20000) << (BMP_BIT - 32), /* 63 -- 16, 44c2 */ - BMP_C(0x45270551) << (BMP_BIT - 32), /* 64 -- 32,45270551 */ - BMP_C(0x48000000) << (BMP_BIT - 32), /* 65 -- 5, 09 */ - BMP_C(0x49000000) << (BMP_BIT - 32), /* 66 -- 8, 49 */ - BMP_C(0x4a800000) << (BMP_BIT - 32), /* 67 -- 10, 12a */ - BMP_C(0x4acc0000) << (BMP_BIT - 32), /* 68 -- 15, 2566 */ - BMP_C(0x4b000000) << (BMP_BIT - 32), /* 69 -- 8, 4b */ - BMP_C(0x4b370000) << (BMP_BIT - 32), /* 70 -- 16, 4b37 */ - BMP_C(0x4c000000) << (BMP_BIT - 32), /* 71 -- 6, 13 */ - BMP_C(0x4c060000) << (BMP_BIT - 32), /* 72 -- 16, 4c06 */ - BMP_C(0x53000000) << (BMP_BIT - 32), /* 73 -- 8, 53 */ - BMP_C(0x55000000) << (BMP_BIT - 32), /* 74 -- 8, 55 */ - BMP_C(0x55555500) << (BMP_BIT - 32), /* 75 -- 24, 555555 */ - BMP_C(0x59350000) << (BMP_BIT - 32), /* 76 -- 16, 5935 */ - BMP_C(0x5d380000) << (BMP_BIT - 32), /* 77 -- 16, 5d38 */ - BMP_C(0x5d400000) << (BMP_BIT - 32), /* 78 -- 10, 175 */ - BMP_C(0x5d6dcb00) << (BMP_BIT - 32), /* 79 -- 24, 5d6dcb */ - BMP_C(0x60000000) << (BMP_BIT - 32), /* 80 -- 3, 3 */ - BMP_C(0x60e00000) << (BMP_BIT - 32), /* 81 -- 11, 307 */ - BMP_C(0x63d00000) << (BMP_BIT - 32), /* 82 -- 16, 63d0 */ - BMP_C(0x64000000) << (BMP_BIT - 32), /* 83 -- 6, 19 */ - BMP_C(0x66400000) << (BMP_BIT - 32), /* 84 -- 10, 199 */ - BMP_C(0x66c50000) << (BMP_BIT - 32), /* 85 -- 16, 66c5 */ - BMP_C(0x6f630000) << (BMP_BIT - 32), /* 86 -- 16, 6f63 */ - BMP_C(0x6f910000) << (BMP_BIT - 32), /* 87 -- 16, 6f91 */ - BMP_C(0x70000000) << (BMP_BIT - 32), /* 88 -- 4, 7 */ - BMP_C(0x70a00000) << (BMP_BIT - 32), /* 89 -- 11, 385 */ - BMP_C(0x755b0000) << (BMP_BIT - 32), /* 90 -- 16, 755b */ - BMP_C(0x765e7680) << (BMP_BIT - 32), /* 91 -- 32,765e7680 */ - BMP_C(0x76c20800) << (BMP_BIT - 32), /* 92 -- 32, 0ed841 */ - BMP_C(0x7979bd00) << (BMP_BIT - 32), /* 93 -- 24, 7979bd */ - BMP_C(0x7e000000) << (BMP_BIT - 32), /* 94 -- 8, 7e */ - BMP_C(0x80000000) << (BMP_BIT - 32), /* 95 -- 3, 4 */ - BMP_C(0x80006300) << (BMP_BIT - 32), /* 96 -- 24, 800063 */ - BMP_C(0x80050000) << (BMP_BIT - 32), /* 97 -- 16, 8005 */ - BMP_C(0x800d0000) << (BMP_BIT - 32), /* 98 -- 16, 800d */ - BMP_C(0x800fe300) << (BMP_BIT - 32), /* 99 -- 24, 800fe3 */ - BMP_C(0x80b40000) << (BMP_BIT - 32), /* 100 -- 14, 202d */ - BMP_C(0x80c2e71c) << (BMP_BIT - 32), /* 101 -- 30,2030b9c7 */ - BMP_C(0x80f00000) << (BMP_BIT - 32), /* 102 -- 12, 80f */ - BMP_C(0x814141ab) << (BMP_BIT - 32), /* 103 -- 32,814141ab */ - BMP_C(0x8144c800) << (BMP_BIT - 32), /* 104 -- 21, 102899 */ - BMP_C(0x864cfb00) << (BMP_BIT - 32), /* 105 -- 24, 864cfb */ - BMP_C(0x87315576) << (BMP_BIT - 32), /* 106 -- 32,87315576 */ - BMP_C(0x89ec0000) << (BMP_BIT - 32), /* 107 -- 16, 89ec */ - BMP_C(0x8a000000) << (BMP_BIT - 32), /* 108 -- 7, 45 */ - BMP_C(0x8b320000) << (BMP_BIT - 32), /* 109 -- 15, 4599 */ - BMP_C(0x8bb70000) << (BMP_BIT - 32), /* 110 -- 16, 8bb7 */ - BMP_C(0x8cc00000) << (BMP_BIT - 32), /* 111 -- 10, 233 */ - BMP_C(0x904cddbf) << (BMP_BIT - 32), /* 112 -- 32,904cddbf */ - BMP_C(0x906e0000) << (BMP_BIT - 32), /* 113 -- 16, 906e */ - BMP_C(0x94000000) << (BMP_BIT - 32), /* 114 -- 8, 94 */ - BMP_C(0x97000000) << (BMP_BIT - 32), /* 115 -- 8, 97 */ - BMP_C(0x98000000) << (BMP_BIT - 32), /* 116 -- 6, 26 */ - BMP_C(0x9b000000) << (BMP_BIT - 32), /* 117 -- 8, 9b */ - BMP_C(0x9c000000) << (BMP_BIT - 32), /* 118 -- 6, 27 */ - BMP_C(0x9d5e4de2) << (BMP_BIT - 32), /* 119 -- 31,4eaf26f1 */ - BMP_C(0x9e000000) << (BMP_BIT - 32), /* 120 -- 7, 4f */ - BMP_C(0x9ecf0000) << (BMP_BIT - 32), /* 121 -- 16, 9ecf */ - BMP_C(0xa0970000) << (BMP_BIT - 32), /* 122 -- 16, a097 */ - BMP_C(0xa1000000) << (BMP_BIT - 32), /* 123 -- 8, a1 */ - BMP_C(0xa3660000) << (BMP_BIT - 32), /* 124 -- 16, a366 */ - BMP_C(0xa6000000) << (BMP_BIT - 32), /* 125 -- 7, 53 */ - BMP_C(0xa7000000) << (BMP_BIT - 32), /* 126 -- 8, a7 */ - BMP_C(0xa8000000) << (BMP_BIT - 32), /* 127 -- 5, 15 */ - BMP_C(0xa8190000) << (BMP_BIT - 32), /* 128 -- 16, a819 */ - BMP_C(0xa833982b) << (BMP_BIT - 32), /* 129 -- 32,a833982b */ - BMP_C(0xabcdef00) << (BMP_BIT - 32), /* 130 -- 24, abcdef */ - BMP_C(0xac000000) << (BMP_BIT - 32), /* 131 -- 8, ac */ - BMP_C(0xaee70000) << (BMP_BIT - 32), /* 132 -- 16, aee7 */ - BMP_C(0xb0000000) << (BMP_BIT - 32), /* 133 -- 4, b */ - BMP_C(0xb0010000) << (BMP_BIT - 32), /* 134 -- 16, b001 */ - BMP_C(0xb2aa0000) << (BMP_BIT - 32), /* 135 -- 16, b2aa */ - BMP_C(0xb3400000) << (BMP_BIT - 32), /* 136 -- 12, b34 */ - BMP_C(0xb42d8000) << (BMP_BIT - 32), /* 137 -- 17, 1685b */ - BMP_C(0xb4600000) << (BMP_BIT - 32), /* 138 -- 11, 5a3 */ - BMP_C(0xb4c80000) << (BMP_BIT - 32), /* 139 -- 16, b4c8 */ - BMP_C(0xb4f3e600) << (BMP_BIT - 32), /* 140 -- 24, b4f3e6 */ - BMP_C(0xb704ce00) << (BMP_BIT - 32), /* 141 -- 24, b704ce */ - BMP_C(0xb798b438) << (BMP_BIT - 32), /* 142 -- 32,b798b438 */ - BMP_C(0xbb3d0000) << (BMP_BIT - 32), /* 143 -- 16, bb3d */ - BMP_C(0xbc000000) << (BMP_BIT - 32), /* 144 -- 6,2f/ 8,bc */ - BMP_C(0xbd0be338) << (BMP_BIT - 32), /* 145 -- 32,bd0be338 */ - BMP_C(0xbdf40000) << (BMP_BIT - 32), /* 146 -- 16, bdf4 */ - BMP_C(0xbf050000) << (BMP_BIT - 32), /* 147 -- 16, bf05 */ - BMP_C(0xc0000000) << (BMP_BIT - 32), /* 148 -- 3, 6 */ - BMP_C(0xc2000000) << (BMP_BIT - 32), /* 149 -- 7, 61 */ - BMP_C(0xc25a5600) << (BMP_BIT - 32), /* 150 -- 24, c25a56 */ - BMP_C(0xc2b70000) << (BMP_BIT - 32), /* 151 -- 16, c2b7 */ - BMP_C(0xc2b80000) << (BMP_BIT - 32), /* 152 -- 14, 30ae */ - BMP_C(0xc4000000) << (BMP_BIT - 32), /* 153 -- 8, c4 */ - BMP_C(0xc6c60000) << (BMP_BIT - 32), /* 154 -- 16, c6c6 */ - BMP_C(0xc704dd7b) << (BMP_BIT - 32), /* 155 -- 32,c704dd7b */ - BMP_C(0xc8000000) << (BMP_BIT - 32), /* 156 -- 5, 19 */ - BMP_C(0xc8670000) << (BMP_BIT - 32), /* 157 -- 16, c867 */ - BMP_C(0xcbf43926) << (BMP_BIT - 32), /* 158 -- 32,cbf43926 */ - BMP_C(0xcde70300) << (BMP_BIT - 32), /* 159 -- 24, cde703 */ - BMP_C(0xce3c0000) << (BMP_BIT - 32), /* 160 -- 16, ce3c */ - BMP_C(0xd0000000) << (BMP_BIT - 32), /* 161 -- 8, d0 */ - BMP_C(0xd02a0000) << (BMP_BIT - 32), /* 162 -- 15, 6815 */ - BMP_C(0xd0db0000) << (BMP_BIT - 32), /* 163 -- 16, d0db */ - BMP_C(0xd3100000) << (BMP_BIT - 32), /* 164 -- 12, d31 */ - BMP_C(0xd3be9568) << (BMP_BIT - 32), /* 165 -- 30,34efa55a */ - BMP_C(0xd4d00000) << (BMP_BIT - 32), /* 166 -- 12, d4d */ - BMP_C(0xd5000000) << (BMP_BIT - 32), /* 167 -- 8, d5 */ - BMP_C(0xd64e0000) << (BMP_BIT - 32), /* 168 -- 16, d64e */ - BMP_C(0xda000000) << (BMP_BIT - 32), /* 169 -- 8, da */ - BMP_C(0xdaf00000) << (BMP_BIT - 32), /* 170 -- 12, daf */ - BMP_C(0xdebb20e3) << (BMP_BIT - 32), /* 171 -- 32,debb20e3 */ - BMP_C(0xdf000000) << (BMP_BIT - 32), /* 172 -- 8, df */ - BMP_C(0xe0000000) << (BMP_BIT - 32), /* 173 -- 3, 7 */ - BMP_C(0xe3069283) << (BMP_BIT - 32), /* 174 -- 32,e3069283 */ - BMP_C(0xe3940000) << (BMP_BIT - 32), /* 175 -- 16, e394 */ - BMP_C(0xe5cc0000) << (BMP_BIT - 32), /* 176 -- 16, e5cc */ - BMP_C(0xe7a80000) << (BMP_BIT - 32), /* 177 -- 13, 1cf5 */ - BMP_C(0xe8000000) << (BMP_BIT - 32), /* 178 -- 6, 3a */ - BMP_C(0xea000000) << (BMP_BIT - 32), /* 179 -- 7, 75 */ - BMP_C(0xea820000) << (BMP_BIT - 32), /* 180 -- 16, ea82 */ - BMP_C(0xec000000) << (BMP_BIT - 32), /* 181 -- 6, 3b */ - BMP_C(0xf0000000) << (BMP_BIT - 32), /* 182 -- 4, f */ - BMP_C(0xf0b80000) << (BMP_BIT - 32), /* 183 -- 16, f0b8 */ - BMP_C(0xf1300000) << (BMP_BIT - 32), /* 184 -- 12, f13 */ - BMP_C(0xf4000000) << (BMP_BIT - 32), /* 185 -- 8, f4 */ - BMP_C(0xf4acfb13) << (BMP_BIT - 32), /* 186 -- 32,f4acfb13 */ - BMP_C(0xf5b00000) << (BMP_BIT - 32), /* 187 -- 12, f5b */ - BMP_C(0xf6400000) << (BMP_BIT - 32), /* 188 -- 10, 3d9 */ - BMP_C(0xf8000000) << (BMP_BIT - 32), /* 189 -- 5, 1f */ - BMP_C(0xfc000000) << (BMP_BIT - 32), /* 190 -- 6, 3f */ - BMP_C(0xfc891918) << (BMP_BIT - 32), /* 191 -- 32,fc891918 */ - BMP_C(0xfd000000) << (BMP_BIT - 32), /* 192 -- 8, fd */ - BMP_C(0xfe000000) << (BMP_BIT - 32), /* 193 -- 7, 7f */ - BMP_C(0xfedcba00) << (BMP_BIT - 32), /* 194 -- 24, fedcba */ - BMP_C(0xfee80000) << (BMP_BIT - 32), /* 195 -- 16, fee8 */ - BMP_C(0xff000000) << (BMP_BIT - 32), /* 196 -- 8, ff */ - BMP_C(0xffc00000) << (BMP_BIT - 32), /* 197 -- 10, 3ff */ - BMP_C(0xfff00000) << (BMP_BIT - 32), /* 198 -- 12, fff */ - BMP_C(0xfffc0000) << (BMP_BIT - 32), /* 199 -- 14, 3fff */ - BMP_C(0xffff0000) << (BMP_BIT - 32), /* 200 -- 16, ffff */ - BMP_C(0xffffff00) << (BMP_BIT - 32), /* 201 -- 24, ffffff */ - BMP_C(0xfffffffc) << (BMP_BIT - 32), /* 202 -- 30,3fffffff */ - BMP_C(0xfffffffe) << (BMP_BIT - 32), /* 203 -- 31,7fffffff */ - BMP_C(0xffffffff) << (BMP_BIT - 32), /* 204 -- 32,ffffffff */ + BMP_C(0x080b0000) << (BMP_BIT - 32), /* 11 -- 16, 080b */ + BMP_C(0x09823b6e) << (BMP_BIT - 32), /* 12 -- 31,04c11db7 */ + BMP_C(0x0b3c0000) << (BMP_BIT - 32), /* 13 -- 15, 059e */ + BMP_C(0x0c000000) << (BMP_BIT - 32), /* 14 -- 6, 03 */ + BMP_C(0x0c200000) << (BMP_BIT - 32), /* 15 -- 11, 061 */ + BMP_C(0x0c780000) << (BMP_BIT - 32), /* 16 -- 14, 031e */ + BMP_C(0x0fb30000) << (BMP_BIT - 32), /* 17 -- 16, 0fb3 */ + BMP_C(0x10210000) << (BMP_BIT - 32), /* 18 -- 16, 1021 */ + BMP_C(0x12000000) << (BMP_BIT - 32), /* 19 -- 7, 09 */ + BMP_C(0x130d2afc) << (BMP_BIT - 32), /* 20 -- 30,04c34abf */ + BMP_C(0x144e6300) << (BMP_BIT - 32), /* 21 -- 24, 144e63 */ + BMP_C(0x15000000) << (BMP_BIT - 32), /* 22 -- 8, 15 */ + BMP_C(0x1697d06a) << (BMP_BIT - 32), /* 23 -- 32,1697d06a */ + BMP_C(0x17800000) << (BMP_BIT - 32), /* 24 -- 12, 178 */ + BMP_C(0x18000000) << (BMP_BIT - 32), /* 25 -- 6, 06 */ + BMP_C(0x19d3c8d8) << (BMP_BIT - 32), /* 26 -- 31,0ce9e46c */ + BMP_C(0x1c000000) << (BMP_BIT - 32), /* 27 -- 6, 07 */ + BMP_C(0x1d000000) << (BMP_BIT - 32), /* 28 -- 8, 1d */ + BMP_C(0x1d0f0000) << (BMP_BIT - 32), /* 29 -- 16, 1d0f */ + BMP_C(0x1dcf0000) << (BMP_BIT - 32), /* 30 -- 16, 1dcf */ + BMP_C(0x1edc6f41) << (BMP_BIT - 32), /* 31 -- 32,1edc6f41 */ + BMP_C(0x1f23b800) << (BMP_BIT - 32), /* 32 -- 24, 1f23b8 */ + BMP_C(0x20000000) << (BMP_BIT - 32), /* 33 -- 4, 2 */ + BMP_C(0x200fa500) << (BMP_BIT - 32), /* 34 -- 24, 200fa5 */ + BMP_C(0x20140000) << (BMP_BIT - 32), /* 35 -- 14, 0805 */ + BMP_C(0x20b40000) << (BMP_BIT - 32), /* 36 -- 14, 082d */ + BMP_C(0x20fe0000) << (BMP_BIT - 32), /* 37 -- 16, 20fe */ + BMP_C(0x21890000) << (BMP_BIT - 32), /* 38 -- 16, 2189 */ + BMP_C(0x21cf0200) << (BMP_BIT - 32), /* 39 -- 24, 21cf02 */ + BMP_C(0x23ef5200) << (BMP_BIT - 32), /* 40 -- 24, 23ef52 */ + BMP_C(0x25000000) << (BMP_BIT - 32), /* 41 -- 8, 25 */ + BMP_C(0x26000000) << (BMP_BIT - 32), /* 42 -- 8, 26 */ + BMP_C(0x26b10000) << (BMP_BIT - 32), /* 43 -- 16, 26b1 */ + BMP_C(0x27818000) << (BMP_BIT - 32), /* 44 -- 17, 04f03 */ + BMP_C(0x27d00000) << (BMP_BIT - 32), /* 45 -- 13, 04fa */ + BMP_C(0x28000000) << (BMP_BIT - 32), /* 46 -- 5, 05 */ + BMP_C(0x29b10000) << (BMP_BIT - 32), /* 47 -- 16, 29b1 */ + BMP_C(0x2f000000) << (BMP_BIT - 32), /* 48 -- 8, 2f */ + BMP_C(0x30000000) << (BMP_BIT - 32), /* 49 -- 4, 3/ 5, 6 */ + BMP_C(0x3010bf7f) << (BMP_BIT - 32), /* 50 -- 32,3010bf7f */ + BMP_C(0x31000000) << (BMP_BIT - 32), /* 51 -- 8, 31 */ + BMP_C(0x31800000) << (BMP_BIT - 32), /* 52 -- 10, 0c6 */ + BMP_C(0x31c30000) << (BMP_BIT - 32), /* 53 -- 16, 31c3 */ + BMP_C(0x328b6300) << (BMP_BIT - 32), /* 54 -- 24, 328b63 */ + BMP_C(0x34000000) << (BMP_BIT - 32), /* 55 -- 6, 0d */ + BMP_C(0x340bc6d9) << (BMP_BIT - 32), /* 56 -- 32,340bc6d9 */ + BMP_C(0x37000000) << (BMP_BIT - 32), /* 57 -- 8, 37 */ + BMP_C(0x38000000) << (BMP_BIT - 32), /* 58 -- 5, 07 */ + BMP_C(0x39000000) << (BMP_BIT - 32), /* 59 -- 8, 39 */ + BMP_C(0x3d650000) << (BMP_BIT - 32), /* 60 -- 16, 3d65 */ + BMP_C(0x3e000000) << (BMP_BIT - 32), /* 61 -- 8, 3e */ + BMP_C(0x40000000) << (BMP_BIT - 32), /* 62 -- 3, 2 */ + BMP_C(0x42000000) << (BMP_BIT - 32), /* 63 -- 8, 42 */ + BMP_C(0x44c20000) << (BMP_BIT - 32), /* 64 -- 16, 44c2 */ + BMP_C(0x45270551) << (BMP_BIT - 32), /* 65 -- 32,45270551 */ + BMP_C(0x48000000) << (BMP_BIT - 32), /* 66 -- 5, 09 */ + BMP_C(0x49000000) << (BMP_BIT - 32), /* 67 -- 8, 49 */ + BMP_C(0x4a800000) << (BMP_BIT - 32), /* 68 -- 10, 12a */ + BMP_C(0x4acc0000) << (BMP_BIT - 32), /* 69 -- 15, 2566 */ + BMP_C(0x4b000000) << (BMP_BIT - 32), /* 70 -- 8, 4b */ + BMP_C(0x4b370000) << (BMP_BIT - 32), /* 71 -- 16, 4b37 */ + BMP_C(0x4c000000) << (BMP_BIT - 32), /* 72 -- 6, 13 */ + BMP_C(0x4c060000) << (BMP_BIT - 32), /* 73 -- 16, 4c06 */ + BMP_C(0x53000000) << (BMP_BIT - 32), /* 74 -- 8, 53 */ + BMP_C(0x55000000) << (BMP_BIT - 32), /* 75 -- 8, 55 */ + BMP_C(0x55555500) << (BMP_BIT - 32), /* 76 -- 24, 555555 */ + BMP_C(0x59350000) << (BMP_BIT - 32), /* 77 -- 16, 5935 */ + BMP_C(0x5d380000) << (BMP_BIT - 32), /* 78 -- 16, 5d38 */ + BMP_C(0x5d400000) << (BMP_BIT - 32), /* 79 -- 10, 175 */ + BMP_C(0x5d6dcb00) << (BMP_BIT - 32), /* 80 -- 24, 5d6dcb */ + BMP_C(0x60000000) << (BMP_BIT - 32), /* 81 -- 3, 3 */ + BMP_C(0x60e00000) << (BMP_BIT - 32), /* 82 -- 11, 307 */ + BMP_C(0x63d00000) << (BMP_BIT - 32), /* 83 -- 16, 63d0 */ + BMP_C(0x64000000) << (BMP_BIT - 32), /* 84 -- 6, 19 */ + BMP_C(0x66400000) << (BMP_BIT - 32), /* 85 -- 10, 199 */ + BMP_C(0x66c50000) << (BMP_BIT - 32), /* 86 -- 16, 66c5 */ + BMP_C(0x6f630000) << (BMP_BIT - 32), /* 87 -- 16, 6f63 */ + BMP_C(0x6f910000) << (BMP_BIT - 32), /* 88 -- 16, 6f91 */ + BMP_C(0x70000000) << (BMP_BIT - 32), /* 89 -- 4, 7 */ + BMP_C(0x70a00000) << (BMP_BIT - 32), /* 90 -- 11, 385 */ + BMP_C(0x755b0000) << (BMP_BIT - 32), /* 91 -- 16, 755b */ + BMP_C(0x765e7680) << (BMP_BIT - 32), /* 92 -- 32,765e7680 */ + BMP_C(0x76c20800) << (BMP_BIT - 32), /* 93 -- 32, 0ed841 */ + BMP_C(0x7979bd00) << (BMP_BIT - 32), /* 94 -- 24, 7979bd */ + BMP_C(0x7e000000) << (BMP_BIT - 32), /* 95 -- 8, 7e */ + BMP_C(0x80000000) << (BMP_BIT - 32), /* 96 -- 3, 4 */ + BMP_C(0x80006300) << (BMP_BIT - 32), /* 97 -- 24, 800063 */ + BMP_C(0x80050000) << (BMP_BIT - 32), /* 98 -- 16, 8005 */ + BMP_C(0x800d0000) << (BMP_BIT - 32), /* 99 -- 16, 800d */ + BMP_C(0x800fe300) << (BMP_BIT - 32), /* 100 -- 24, 800fe3 */ + BMP_C(0x80b40000) << (BMP_BIT - 32), /* 101 -- 14, 202d */ + BMP_C(0x80c2e71c) << (BMP_BIT - 32), /* 102 -- 30,2030b9c7 */ + BMP_C(0x80f00000) << (BMP_BIT - 32), /* 103 -- 12, 80f */ + BMP_C(0x814141ab) << (BMP_BIT - 32), /* 104 -- 32,814141ab */ + BMP_C(0x8144c800) << (BMP_BIT - 32), /* 105 -- 21, 102899 */ + BMP_C(0x864cfb00) << (BMP_BIT - 32), /* 106 -- 24, 864cfb */ + BMP_C(0x87315576) << (BMP_BIT - 32), /* 107 -- 32,87315576 */ + BMP_C(0x89ec0000) << (BMP_BIT - 32), /* 108 -- 16, 89ec */ + BMP_C(0x8a000000) << (BMP_BIT - 32), /* 109 -- 7, 45 */ + BMP_C(0x8b320000) << (BMP_BIT - 32), /* 110 -- 15, 4599 */ + BMP_C(0x8bb70000) << (BMP_BIT - 32), /* 111 -- 16, 8bb7 */ + BMP_C(0x8cc00000) << (BMP_BIT - 32), /* 112 -- 10, 233 */ + BMP_C(0x904cddbf) << (BMP_BIT - 32), /* 113 -- 32,904cddbf */ + BMP_C(0x906e0000) << (BMP_BIT - 32), /* 114 -- 16, 906e */ + BMP_C(0x94000000) << (BMP_BIT - 32), /* 115 -- 8, 94 */ + BMP_C(0x97000000) << (BMP_BIT - 32), /* 116 -- 8, 97 */ + BMP_C(0x98000000) << (BMP_BIT - 32), /* 117 -- 6, 26 */ + BMP_C(0x9b000000) << (BMP_BIT - 32), /* 118 -- 8, 9b */ + BMP_C(0x9c000000) << (BMP_BIT - 32), /* 119 -- 6, 27 */ + BMP_C(0x9d5e4de2) << (BMP_BIT - 32), /* 120 -- 31,4eaf26f1 */ + BMP_C(0x9e000000) << (BMP_BIT - 32), /* 121 -- 7, 4f */ + BMP_C(0x9ecf0000) << (BMP_BIT - 32), /* 122 -- 16, 9ecf */ + BMP_C(0xa0660000) << (BMP_BIT - 32), /* 123 -- 16, a066 */ + BMP_C(0xa0970000) << (BMP_BIT - 32), /* 124 -- 16, a097 */ + BMP_C(0xa1000000) << (BMP_BIT - 32), /* 125 -- 8, a1 */ + BMP_C(0xa3660000) << (BMP_BIT - 32), /* 126 -- 16, a366 */ + BMP_C(0xa6000000) << (BMP_BIT - 32), /* 127 -- 7, 53 */ + BMP_C(0xa7000000) << (BMP_BIT - 32), /* 128 -- 8, a7 */ + BMP_C(0xa8000000) << (BMP_BIT - 32), /* 129 -- 5, 15 */ + BMP_C(0xa8190000) << (BMP_BIT - 32), /* 130 -- 16, a819 */ + BMP_C(0xa833982b) << (BMP_BIT - 32), /* 131 -- 32,a833982b */ + BMP_C(0xabcdef00) << (BMP_BIT - 32), /* 132 -- 24, abcdef */ + BMP_C(0xac000000) << (BMP_BIT - 32), /* 133 -- 8, ac */ + BMP_C(0xaee70000) << (BMP_BIT - 32), /* 134 -- 16, aee7 */ + BMP_C(0xb0000000) << (BMP_BIT - 32), /* 135 -- 4, b */ + BMP_C(0xb0010000) << (BMP_BIT - 32), /* 136 -- 16, b001 */ + BMP_C(0xb2aa0000) << (BMP_BIT - 32), /* 137 -- 16, b2aa */ + BMP_C(0xb3400000) << (BMP_BIT - 32), /* 138 -- 12, b34 */ + BMP_C(0xb42d8000) << (BMP_BIT - 32), /* 139 -- 17, 1685b */ + BMP_C(0xb4600000) << (BMP_BIT - 32), /* 140 -- 11, 5a3 */ + BMP_C(0xb4c80000) << (BMP_BIT - 32), /* 141 -- 16, b4c8 */ + BMP_C(0xb4f3e600) << (BMP_BIT - 32), /* 142 -- 24, b4f3e6 */ + BMP_C(0xb704ce00) << (BMP_BIT - 32), /* 143 -- 24, b704ce */ + BMP_C(0xb798b438) << (BMP_BIT - 32), /* 144 -- 32,b798b438 */ + BMP_C(0xbb3d0000) << (BMP_BIT - 32), /* 145 -- 16, bb3d */ + BMP_C(0xbc000000) << (BMP_BIT - 32), /* 146 -- 6,2f/ 8,bc */ + BMP_C(0xbd0be338) << (BMP_BIT - 32), /* 147 -- 32,bd0be338 */ + BMP_C(0xbdf40000) << (BMP_BIT - 32), /* 148 -- 16, bdf4 */ + BMP_C(0xbf050000) << (BMP_BIT - 32), /* 149 -- 16, bf05 */ + BMP_C(0xc0000000) << (BMP_BIT - 32), /* 150 -- 3, 6 */ + BMP_C(0xc2000000) << (BMP_BIT - 32), /* 151 -- 7, 61 */ + BMP_C(0xc25a5600) << (BMP_BIT - 32), /* 152 -- 24, c25a56 */ + BMP_C(0xc2b70000) << (BMP_BIT - 32), /* 153 -- 16, c2b7 */ + BMP_C(0xc2b80000) << (BMP_BIT - 32), /* 154 -- 14, 30ae */ + BMP_C(0xc4000000) << (BMP_BIT - 32), /* 155 -- 8, c4 */ + BMP_C(0xc6c60000) << (BMP_BIT - 32), /* 156 -- 16, c6c6 */ + BMP_C(0xc704dd7b) << (BMP_BIT - 32), /* 157 -- 32,c704dd7b */ + BMP_C(0xc8000000) << (BMP_BIT - 32), /* 158 -- 5, 19 */ + BMP_C(0xc8670000) << (BMP_BIT - 32), /* 159 -- 16, c867 */ + BMP_C(0xcbf43926) << (BMP_BIT - 32), /* 160 -- 32,cbf43926 */ + BMP_C(0xcde70300) << (BMP_BIT - 32), /* 161 -- 24, cde703 */ + BMP_C(0xce3c0000) << (BMP_BIT - 32), /* 162 -- 16, ce3c */ + BMP_C(0xd0000000) << (BMP_BIT - 32), /* 163 -- 8, d0 */ + BMP_C(0xd02a0000) << (BMP_BIT - 32), /* 164 -- 15, 6815 */ + BMP_C(0xd0db0000) << (BMP_BIT - 32), /* 165 -- 16, d0db */ + BMP_C(0xd3100000) << (BMP_BIT - 32), /* 166 -- 12, d31 */ + BMP_C(0xd3be9568) << (BMP_BIT - 32), /* 167 -- 30,34efa55a */ + BMP_C(0xd4d00000) << (BMP_BIT - 32), /* 168 -- 12, d4d */ + BMP_C(0xd5000000) << (BMP_BIT - 32), /* 169 -- 8, d5 */ + BMP_C(0xd64e0000) << (BMP_BIT - 32), /* 170 -- 16, d64e */ + BMP_C(0xda000000) << (BMP_BIT - 32), /* 171 -- 8, da */ + BMP_C(0xdaf00000) << (BMP_BIT - 32), /* 172 -- 12, daf */ + BMP_C(0xdebb20e3) << (BMP_BIT - 32), /* 173 -- 32,debb20e3 */ + BMP_C(0xdf000000) << (BMP_BIT - 32), /* 174 -- 8, df */ + BMP_C(0xe0000000) << (BMP_BIT - 32), /* 175 -- 3, 7 */ + BMP_C(0xe3069283) << (BMP_BIT - 32), /* 176 -- 32,e3069283 */ + BMP_C(0xe3940000) << (BMP_BIT - 32), /* 177 -- 16, e394 */ + BMP_C(0xe5cc0000) << (BMP_BIT - 32), /* 178 -- 16, e5cc */ + BMP_C(0xe7a80000) << (BMP_BIT - 32), /* 179 -- 13, 1cf5 */ + BMP_C(0xe8000000) << (BMP_BIT - 32), /* 180 -- 6, 3a */ + BMP_C(0xea000000) << (BMP_BIT - 32), /* 181 -- 7, 75 */ + BMP_C(0xea820000) << (BMP_BIT - 32), /* 182 -- 16, ea82 */ + BMP_C(0xec000000) << (BMP_BIT - 32), /* 183 -- 6, 3b */ + BMP_C(0xf0000000) << (BMP_BIT - 32), /* 184 -- 4, f */ + BMP_C(0xf0b80000) << (BMP_BIT - 32), /* 185 -- 16, f0b8 */ + BMP_C(0xf1300000) << (BMP_BIT - 32), /* 186 -- 12, f13 */ + BMP_C(0xf4000000) << (BMP_BIT - 32), /* 187 -- 8, f4 */ + BMP_C(0xf4acfb13) << (BMP_BIT - 32), /* 188 -- 32,f4acfb13 */ + BMP_C(0xf5b00000) << (BMP_BIT - 32), /* 189 -- 12, f5b */ + BMP_C(0xf6400000) << (BMP_BIT - 32), /* 190 -- 10, 3d9 */ + BMP_C(0xf7000000) << (BMP_BIT - 32), /* 191 -- 8, f7 */ + BMP_C(0xf8000000) << (BMP_BIT - 32), /* 192 -- 5, 1f */ + BMP_C(0xfc000000) << (BMP_BIT - 32), /* 193 -- 6, 3f */ + BMP_C(0xfc891918) << (BMP_BIT - 32), /* 194 -- 32,fc891918 */ + BMP_C(0xfd000000) << (BMP_BIT - 32), /* 195 -- 8, fd */ + BMP_C(0xfe000000) << (BMP_BIT - 32), /* 196 -- 7, 7f */ + BMP_C(0xfedcba00) << (BMP_BIT - 32), /* 197 -- 24, fedcba */ + BMP_C(0xfee80000) << (BMP_BIT - 32), /* 198 -- 16, fee8 */ + BMP_C(0xff000000) << (BMP_BIT - 32), /* 199 -- 8, ff */ + BMP_C(0xffc00000) << (BMP_BIT - 32), /* 200 -- 10, 3ff */ + BMP_C(0xfff00000) << (BMP_BIT - 32), /* 201 -- 12, fff */ + BMP_C(0xfffc0000) << (BMP_BIT - 32), /* 202 -- 14, 3fff */ + BMP_C(0xffff0000) << (BMP_BIT - 32), /* 203 -- 16, ffff */ + BMP_C(0xffffff00) << (BMP_BIT - 32), /* 204 -- 24, ffffff */ + BMP_C(0xfffffffc) << (BMP_BIT - 32), /* 205 -- 30,3fffffff */ + BMP_C(0xfffffffe) << (BMP_BIT - 32), /* 206 -- 31,7fffffff */ + BMP_C(0xffffffff) << (BMP_BIT - 32), /* 207 -- 32,ffffffff */ }; static const struct malias aliases[]; @@ -471,265 +476,303 @@ static const struct malias aliases[]; * Sorted by left-justified polynomial for bsearch(). */ static const struct mpreset models[] = { - {64UL, b64, b64a, P_LE, b64a, b64b, b64c, aliases+100}, /* 0 */ - {32UL, b32+ 0, 0, P_BE, 0, b32+145, 0, aliases+138}, /* 1 */ - {40UL, b40, 0, P_BE, b40a, b40b, b40c, aliases+ 88}, /* 2 */ - {24UL, b32+ 3, b32+ 75, P_LE, 0, b32+150, 0, aliases+ 60}, /* 3 */ - {32UL, b32+ 8, 0, P_BE, b32+204, b32+ 91, b32+155, aliases+ 82}, /* 4 */ - {32UL, b32+ 8, b32+204, P_BE, 0, b32+ 7, 0, aliases+ 81}, /* 5 */ - {32UL, b32+ 8, b32+204, P_BE, b32+204, b32+191, b32+155, aliases+ 76}, /* 6 */ - {32UL, b32+ 8, b32+204, P_LE, 0, b32+ 55, 0, aliases+130}, /* 7 */ - {32UL, b32+ 8, b32+204, P_LE, b32+204, b32+158, b32+171, aliases+ 72}, /* 8 */ - {16UL, b32+ 9, 0, P_BE, 0, b32+ 5, 0, aliases+ 31}, /* 9 */ - {16UL, b32+ 9, 0, P_BE, b32+ 1, b32+ 4, b32+ 9, aliases+ 30}, /* 10 */ - { 8UL, b32+ 10, 0, P_BE, 0, b32+185, 0, aliases+106}, /* 11 */ - { 8UL, b32+ 10, 0, P_BE, b32+ 74, b32+123, b32+131, aliases+117}, /* 12 */ - { 8UL, b32+ 10, b32+196, P_LE, 0, b32+161, 0, aliases+121}, /* 13 */ - {31UL, b32+ 11, b32+203, P_BE, b32+203, b32+ 25, b32+119, aliases+ 71}, /* 14 */ - { 6UL, b32+ 13, 0, P_LE, 0, b32+ 24, 0, aliases+ 96}, /* 15 */ - {82UL, b82, 0, P_LE, 0, b82a, 0, aliases+124}, /* 16 */ - {16UL, b32+ 17, 0, P_BE, 0, b32+ 52, 0, aliases+139}, /* 17 */ - {16UL, b32+ 17, 0, P_BE, b32+200, b32+160, b32+ 28, aliases+ 36}, /* 18 */ - {16UL, b32+ 17, 0, P_LE, 0, b32+ 37, 0, aliases+131}, /* 19 */ - {16UL, b32+ 17, b32+ 28, P_BE, 0, b32+176, 0, aliases+ 21}, /* 20 */ - {16UL, b32+ 17, b32+107, P_LE, 0, b32+ 42, 0, aliases+ 53}, /* 21 */ - {16UL, b32+ 17, b32+135, P_LE, 0, b32+ 82, 0, aliases+ 49}, /* 22 */ - {16UL, b32+ 17, b32+154, P_LE, 0, b32+147, 0, aliases+125}, /* 23 */ - {16UL, b32+ 17, b32+200, P_BE, 0, b32+ 46, 0, aliases+ 24}, /* 24 */ - {16UL, b32+ 17, b32+200, P_BE, b32+200, b32+168, b32+ 28, aliases+ 35}, /* 25 */ - {16UL, b32+ 17, b32+200, P_LE, 0, b32+ 87, 0, aliases+ 45}, /* 26 */ - {16UL, b32+ 17, b32+200, P_LE, b32+200, b32+113, b32+183, aliases+135}, /* 27 */ - { 7UL, b32+ 18, 0, P_BE, 0, b32+179, 0, aliases+103}, /* 28 */ - { 6UL, b32+ 26, b32+190, P_BE, 0, b32+181, 0, aliases+ 93}, /* 29 */ - { 8UL, b32+ 27, 0, P_BE, 0, b32+ 56, 0, aliases+114}, /* 30 */ - { 8UL, b32+ 27, b32+192, P_BE, 0, b32+ 94, 0, aliases+116}, /* 31 */ - { 8UL, b32+ 27, b32+196, P_BE, b32+196, b32+ 69, b32+153, aliases+122}, /* 32 */ - { 8UL, b32+ 27, b32+196, P_LE, 0, b32+115, 0, aliases+113}, /* 33 */ - {16UL, b32+ 29, b32+200, P_BE, b32+200, b32+128, b32+175, aliases+ 48}, /* 34 */ - {32UL, b32+ 30, b32+204, P_LE, b32+204, b32+174, b32+142, aliases+ 83}, /* 35 */ - {14UL, b32+ 34, 0, P_LE, 0, b32+ 35, 0, aliases+ 14}, /* 36 */ - { 5UL, b32+ 45, b32+189, P_LE, b32+189, b32+156, b32+ 48, aliases+ 91}, /* 37 */ - { 8UL, b32+ 47, 0, P_BE, 0, b32+ 60, 0, aliases+120}, /* 38 */ - { 8UL, b32+ 47, b32+196, P_BE, b32+196, b32+172, b32+ 62, aliases+108}, /* 39 */ - { 4UL, b32+ 48, 0, P_LE, 0, b32+ 88, 0, aliases+ 87}, /* 40 */ - { 4UL, b32+ 48, b32+182, P_BE, b32+182, b32+133, b32+ 32, aliases+ 86}, /* 41 */ - { 8UL, b32+ 50, 0, P_LE, 0, b32+123, 0, aliases+119}, /* 42 */ - {24UL, b32+ 53, b32+201, P_BE, b32+201, b32+140, b32+ 20, aliases+ 63}, /* 43 */ - { 8UL, b32+ 58, 0, P_LE, 0, b32+ 21, 0, aliases+111}, /* 44 */ - {16UL, b32+ 59, 0, P_BE, b32+200, b32+151, b32+124, aliases+ 33}, /* 45 */ - {16UL, b32+ 59, 0, P_LE, b32+200, b32+180, b32+ 85, aliases+ 32}, /* 46 */ - {64UL, b64d, 0, P_BE, 0, b64e, 0, aliases+ 97}, /* 47 */ - {64UL, b64d, b64a, P_BE, b64a, b64f, b64g, aliases+101}, /* 48 */ - {64UL, b64d, b64a, P_LE, b64a, b64h, b64i, aliases+102}, /* 49 */ - { 5UL, b32+ 65, b32+ 65, P_BE, 0, 0, 0, aliases+ 89}, /* 50 */ - { 8UL, b32+ 66, 0, P_BE, b32+196, b32+114, b32+ 73, aliases+115}, /* 51 */ - {16UL, b32+ 76, 0, P_BE, 0, b32+ 77, 0, aliases+ 46}, /* 52 */ - {10UL, b32+ 78, 0, P_BE, b32+197, b32+ 67, b32+ 51, aliases+ 5}, /* 53 */ - {24UL, b32+ 79, b32+130, P_BE, 0, b32+ 31, 0, aliases+ 62}, /* 54 */ - {24UL, b32+ 79, b32+194, P_BE, 0, b32+ 93, 0, aliases+ 61}, /* 55 */ - { 3UL, b32+ 80, 0, P_BE, b32+173, b32+ 95, b32+ 61, aliases+ 68}, /* 56 */ - { 3UL, b32+ 80, b32+173, P_LE, 0, b32+148, 0, aliases+ 69}, /* 57 */ - {11UL, b32+ 81, 0, P_BE, 0, b32+ 14, 0, aliases+ 7}, /* 58 */ - { 6UL, b32+ 83, 0, P_LE, 0, b32+116, 0, aliases+ 94}, /* 59 */ - {16UL, b32+ 86, 0, P_BE, 0, b32+146, 0, aliases+ 42}, /* 60 */ - {11UL, b32+ 89, b32+ 6, P_BE, 0, b32+138, 0, aliases+ 6}, /* 61 */ - {16UL, b32+ 90, 0, P_BE, 0, b32+ 36, 0, aliases+ 47}, /* 62 */ - {24UL, b32+ 96, 0, P_BE, 0, b32+ 39, 0, aliases+ 65}, /* 63 */ - {24UL, b32+ 96, b32+201, P_BE, b32+201, b32+ 33, b32+ 99, aliases+ 67}, /* 64 */ - {16UL, b32+ 97, 0, P_BE, 0, b32+195, 0, aliases+ 22}, /* 65 */ - {16UL, b32+ 97, 0, P_LE, 0, b32+143, 0, aliases+ 0}, /* 66 */ - {16UL, b32+ 97, 0, P_LE, b32+200, b32+ 63, b32+134, aliases+ 44}, /* 67 */ - {16UL, b32+ 97, b32+ 98, P_BE, 0, b32+121, 0, aliases+ 29}, /* 68 */ - {16UL, b32+ 97, b32+200, P_BE, 0, b32+132, 0, aliases+ 27}, /* 69 */ - {16UL, b32+ 97, b32+200, P_LE, 0, b32+ 70, 0, aliases+132}, /* 70 */ - {16UL, b32+ 97, b32+200, P_LE, b32+200, b32+139, b32+134, aliases+ 55}, /* 71 */ - {14UL, b32+100, 0, P_BE, b32+199, b32+152, b32+ 15, aliases+ 15}, /* 72 */ - {30UL, b32+101, b32+202, P_BE, b32+202, b32+ 19, b32+165, aliases+ 70}, /* 73 */ - {12UL, b32+102, 0, P_BE, 0, b32+187, 0, aliases+ 10}, /* 74 */ - {12UL, b32+102, 0, P_BELE, 0, b32+170, 0, aliases+ 12}, /* 75 */ - {32UL, b32+103, 0, P_BE, 0, b32+ 49, 0, aliases+ 85}, /* 76 */ - {21UL, b32+104, 0, P_BE, 0, b32+ 92, 0, aliases+ 58}, /* 77 */ - {24UL, b32+105, 0, P_BE, 0, b32+159, 0, aliases+ 64}, /* 78 */ - {24UL, b32+105, b32+141, P_BE, 0, b32+ 38, 0, aliases+ 59}, /* 79 */ - { 7UL, b32+108, 0, P_BE, 0, b32+149, 0, aliases+105}, /* 80 */ - {15UL, b32+109, 0, P_BE, 0, b32+ 12, 0, aliases+ 16}, /* 81 */ - {16UL, b32+110, 0, P_BE, 0, b32+163, 0, aliases+ 51}, /* 82 */ - {10UL, b32+111, 0, P_BE, 0, b32+ 84, 0, aliases+ 3}, /* 83 */ - { 8UL, b32+117, 0, P_BE, 0, b32+179, 0, aliases+118}, /* 84 */ - { 8UL, b32+117, 0, P_LE, 0, b32+ 40, 0, aliases+123}, /* 85 */ - { 8UL, b32+117, b32+196, P_BE, 0, b32+169, 0, aliases+110}, /* 86 */ - { 6UL, b32+118, b32+190, P_BE, 0, b32+ 54, 0, aliases+ 92}, /* 87 */ - { 7UL, b32+120, b32+193, P_LE, 0, b32+125, 0, aliases+104}, /* 88 */ - {16UL, b32+122, 0, P_BE, 0, b32+ 16, 0, aliases+ 52}, /* 89 */ - { 8UL, b32+126, 0, P_LE, 0, b32+ 41, 0, aliases+109}, /* 90 */ - { 5UL, b32+127, 0, P_LE, 0, b32+ 57, 0, aliases+ 90}, /* 91 */ - {32UL, b32+129, b32+204, P_LE, b32+204, b32+106, b32+ 64, aliases+ 84}, /* 92 */ - {17UL, b32+137, 0, P_BE, 0, b32+ 43, 0, aliases+ 57}, /* 93 */ - { 6UL, b32+144, 0, P_BE, b32+190, b32+ 71, b32+178, aliases+ 95}, /* 94 */ - {16UL, b32+157, b32+200, P_BE, 0, b32+ 72, 0, aliases+ 26}, /* 95 */ - {15UL, b32+162, 0, P_BE, b32+ 2, b32+ 68, b32+162, aliases+ 17}, /* 96 */ - {12UL, b32+164, 0, P_BE, b32+198, b32+136, b32+ 23, aliases+ 11}, /* 97 */ - { 8UL, b32+167, 0, P_BE, 0, b32+144, 0, aliases+112}, /* 98 */ - {13UL, b32+177, 0, P_BE, 0, b32+ 44, 0, aliases+ 13}, /* 99 */ - {12UL, b32+184, b32+198, P_BE, 0, b32+166, 0, aliases+ 9}, /* 100 */ - {32UL, b32+186, b32+204, P_LE, b32+204, b32+ 22, b32+112, aliases+ 75}, /* 101 */ - {10UL, b32+188, b32+197, P_BE, 0, b32+111, 0, aliases+ 4}, /* 102 */ - { 0UL, 0, 0, P_BE, 0, 0, 0, NULL }, /* terminating entry */ + {64UL, b64, b64a, P_LE | P_CONFIR, b64a, b64b, b64c, aliases+130}, /* 0 */ + {32UL, b32+ 0, 0, P_BE | P_CONFIR, 0, b32+147, 0, aliases+107}, /* 1 */ + {40UL, b40, 0, P_BE | P_ACADEM, b40a, b40b, b40c, aliases+115}, /* 2 */ + {24UL, b32+ 3, b32+ 76, P_LE | P_ATTEST, 0, b32+152, 0, aliases+ 77}, /* 3 */ + {32UL, b32+ 8, 0, P_BE | P_ATTEST, b32+207, b32+ 92, b32+157, aliases+ 98}, /* 4 */ + {32UL, b32+ 8, b32+207, P_BE | P_ATTEST, 0, b32+ 7, 0, aliases+104}, /* 5 */ + {32UL, b32+ 8, b32+207, P_BE | P_ATTEST, b32+207, b32+194, b32+157, aliases+ 96}, /* 6 */ + {32UL, b32+ 8, b32+207, P_LE | P_CONFIR, 0, b32+ 56, 0, aliases+103}, /* 7 */ + {32UL, b32+ 8, b32+207, P_LE | P_ATTEST, b32+207, b32+160, b32+173, aliases+102}, /* 8 */ + {16UL, b32+ 9, 0, P_BE | P_ATTEST, 0, b32+ 5, 0, aliases+ 36}, /* 9 */ + {16UL, b32+ 9, 0, P_BE | P_ATTEST, b32+ 1, b32+ 4, b32+ 9, aliases+ 35}, /* 10 */ + { 8UL, b32+ 10, 0, P_BE | P_ATTEST, 0, b32+187, 0, aliases+157}, /* 11 */ + { 8UL, b32+ 10, 0, P_BE | P_ACADEM, b32+ 75, b32+125, b32+133, aliases+147}, /* 12 */ + { 8UL, b32+ 10, b32+199, P_LE | P_ACADEM, 0, b32+163, 0, aliases+155}, /* 13 */ + {16UL, b32+ 11, b32+203, P_LE | P_ATTEST, 0, b32+123, 0, aliases+ 58}, /* 14 */ + {31UL, b32+ 12, b32+206, P_BE | P_CONFIR, b32+206, b32+ 26, b32+120, aliases+ 88}, /* 15 */ + { 6UL, b32+ 14, 0, P_LE | P_ACADEM, 0, b32+ 25, 0, aliases+124}, /* 16 */ + {82UL, b82, 0, P_LE | P_ATTEST, 0, b82a, 0, aliases+160}, /* 17 */ + {16UL, b32+ 18, 0, P_BE | P_ATTEST, 0, b32+ 53, 0, aliases+ 73}, /* 18 */ + {16UL, b32+ 18, 0, P_BE | P_ACADEM, b32+203, b32+162, b32+ 29, aliases+ 42}, /* 19 */ + {16UL, b32+ 18, 0, P_LE | P_ATTEST, 0, b32+ 38, 0, aliases+ 50}, /* 20 */ + {16UL, b32+ 18, b32+ 29, P_BE | P_ATTEST, 0, b32+178, 0, aliases+ 63}, /* 21 */ + {16UL, b32+ 18, b32+108, P_LE | P_ATTEST, 0, b32+ 43, 0, aliases+ 66}, /* 22 */ + {16UL, b32+ 18, b32+137, P_LE | P_THIRDP, 0, b32+ 83, 0, aliases+ 62}, /* 23 */ + {16UL, b32+ 18, b32+156, P_LE | P_ATTEST, 0, b32+149, 0, aliases+ 48}, /* 24 */ + {16UL, b32+ 18, b32+203, P_BE | P_ATTEST, 0, b32+ 47, 0, aliases+ 44}, /* 25 */ + {16UL, b32+ 18, b32+203, P_BE | P_ATTEST, b32+203, b32+170, b32+ 29, aliases+ 41}, /* 26 */ + {16UL, b32+ 18, b32+203, P_LE | P_ATTEST, 0, b32+ 88, 0, aliases+ 56}, /* 27 */ + {16UL, b32+ 18, b32+203, P_LE | P_ATTEST, b32+203, b32+114, b32+185, aliases+ 45}, /* 28 */ + { 7UL, b32+ 19, 0, P_BE | P_ACADEM, 0, b32+181, 0, aliases+134}, /* 29 */ + { 6UL, b32+ 27, b32+193, P_BE | P_ACADEM, 0, b32+183, 0, aliases+122}, /* 30 */ + { 8UL, b32+ 28, 0, P_BE | P_ACADEM, 0, b32+ 57, 0, aliases+145}, /* 31 */ + { 8UL, b32+ 28, b32+195, P_BE | P_ATTEST, 0, b32+ 95, 0, aliases+148}, /* 32 */ + { 8UL, b32+ 28, b32+199, P_BE | P_ATTEST, b32+199, b32+ 70, b32+155, aliases+156}, /* 33 */ + { 8UL, b32+ 28, b32+199, P_LE | P_ATTEST, 0, b32+116, 0, aliases+158}, /* 34 */ + {16UL, b32+ 30, b32+203, P_BE | P_ATTEST, b32+203, b32+130, b32+177, aliases+ 61}, /* 35 */ + {32UL, b32+ 31, b32+207, P_LE | P_ATTEST, b32+207, b32+176, b32+144, aliases+101}, /* 36 */ + {14UL, b32+ 35, 0, P_LE | P_ATTEST, 0, b32+ 36, 0, aliases+ 17}, /* 37 */ + { 5UL, b32+ 46, b32+192, P_LE | P_THIRDP, b32+192, b32+158, b32+ 49, aliases+120}, /* 38 */ + { 8UL, b32+ 48, 0, P_BE | P_ATTEST, 0, b32+ 61, 0, aliases+154}, /* 39 */ + { 8UL, b32+ 48, b32+199, P_BE | P_ATTEST, b32+199, b32+174, b32+ 63, aliases+139}, /* 40 */ + { 4UL, b32+ 49, 0, P_LE | P_ACADEM, 0, b32+ 89, 0, aliases+112}, /* 41 */ + { 4UL, b32+ 49, b32+184, P_BE | P_ACADEM, b32+184, b32+135, b32+ 33, aliases+113}, /* 42 */ + { 8UL, b32+ 51, 0, P_LE | P_ATTEST, 0, b32+125, 0, aliases+152}, /* 43 */ + { 8UL, b32+ 51, b32+199, P_BE | P_ATTEST, 0, b32+191, 0, aliases+153}, /* 44 */ + {24UL, b32+ 54, b32+204, P_BE | P_ACADEM, b32+204, b32+142, b32+ 21, aliases+ 80}, /* 45 */ + { 8UL, b32+ 59, 0, P_LE | P_ATTEST, 0, b32+ 22, 0, aliases+142}, /* 46 */ + {16UL, b32+ 60, 0, P_BE | P_CONFIR, b32+203, b32+153, b32+126, aliases+ 38}, /* 47 */ + {16UL, b32+ 60, 0, P_LE | P_CONFIR, b32+203, b32+182, b32+ 86, aliases+ 37}, /* 48 */ + {64UL, b64d, 0, P_BE | P_ACADEM, 0, b64e, 0, aliases+128}, /* 49 */ + {64UL, b64d, b64a, P_BE | P_CONFIR, b64a, b64f, b64g, aliases+131}, /* 50 */ + {64UL, b64d, b64a, P_LE | P_ATTEST, b64a, b64h, b64i, aliases+132}, /* 51 */ + { 5UL, b32+ 66, b32+ 66, P_BE | P_ATTEST, 0, 0, 0, aliases+117}, /* 52 */ + { 8UL, b32+ 67, 0, P_BE | P_ACADEM, b32+199, b32+115, b32+ 74, aliases+146}, /* 53 */ + {16UL, b32+ 77, 0, P_BE | P_ATTEST, 0, b32+ 78, 0, aliases+ 59}, /* 54 */ + {10UL, b32+ 79, 0, P_BE | P_ACADEM, b32+200, b32+ 68, b32+ 52, aliases+ 6}, /* 55 */ + {24UL, b32+ 80, b32+132, P_BE | P_ATTEST, 0, b32+ 32, 0, aliases+ 79}, /* 56 */ + {24UL, b32+ 80, b32+197, P_BE | P_ATTEST, 0, b32+ 94, 0, aliases+ 78}, /* 57 */ + { 3UL, b32+ 81, 0, P_BE | P_ACADEM, b32+175, b32+ 96, b32+ 62, aliases+ 85}, /* 58 */ + { 3UL, b32+ 81, b32+175, P_LE | P_ACADEM, 0, b32+150, 0, aliases+ 86}, /* 59 */ + {11UL, b32+ 82, 0, P_BE | P_ACADEM, 0, b32+ 15, 0, aliases+ 10}, /* 60 */ + { 6UL, b32+ 84, 0, P_LE | P_ATTEST, 0, b32+117, 0, aliases+123}, /* 61 */ + {16UL, b32+ 87, 0, P_BE | P_THIRDP, 0, b32+148, 0, aliases+ 52}, /* 62 */ + {11UL, b32+ 90, b32+ 6, P_BE | P_ATTEST, 0, b32+140, 0, aliases+ 9}, /* 63 */ + {16UL, b32+ 91, 0, P_BE | P_ATTEST, 0, b32+ 37, 0, aliases+ 60}, /* 64 */ + {24UL, b32+ 97, 0, P_BE | P_ACADEM, 0, b32+ 40, 0, aliases+ 82}, /* 65 */ + {24UL, b32+ 97, b32+204, P_BE | P_ATTEST, b32+204, b32+ 34, b32+100, aliases+ 84}, /* 66 */ + {16UL, b32+ 98, 0, P_BE | P_ATTEST, 0, b32+198, 0, aliases+ 67}, /* 67 */ + {16UL, b32+ 98, 0, P_LE | P_CONFIR, 0, b32+145, 0, aliases+ 24}, /* 68 */ + {16UL, b32+ 98, 0, P_LE | P_ATTEST, b32+203, b32+ 64, b32+136, aliases+ 55}, /* 69 */ + {16UL, b32+ 98, b32+ 99, P_BE | P_ATTEST, 0, b32+122, 0, aliases+ 34}, /* 70 */ + {16UL, b32+ 98, b32+203, P_BE | P_THIRDP, 0, b32+134, 0, aliases+ 32}, /* 71 */ + {16UL, b32+ 98, b32+203, P_LE | P_ATTEST, 0, b32+ 71, 0, aliases+ 57}, /* 72 */ + {16UL, b32+ 98, b32+203, P_LE | P_THIRDP, b32+203, b32+141, b32+136, aliases+ 68}, /* 73 */ + {14UL, b32+101, 0, P_BE | P_ACADEM, b32+202, b32+154, b32+ 16, aliases+ 18}, /* 74 */ + {30UL, b32+102, b32+205, P_BE | P_ACADEM, b32+205, b32+ 20, b32+167, aliases+ 87}, /* 75 */ + {12UL, b32+103, 0, P_BE | P_ACADEM, 0, b32+189, 0, aliases+ 13}, /* 76 */ + {12UL, b32+103, 0, P_BELE | P_ACADEM, 0, b32+172, 0, aliases+ 15}, /* 77 */ + {32UL, b32+104, 0, P_BE | P_ATTEST, 0, b32+ 50, 0, aliases+ 92}, /* 78 */ + {21UL, b32+105, 0, P_BE | P_ACADEM, 0, b32+ 93, 0, aliases+ 75}, /* 79 */ + {24UL, b32+106, 0, P_BE | P_ACADEM, 0, b32+161, 0, aliases+ 81}, /* 80 */ + {24UL, b32+106, b32+143, P_BE | P_ATTEST, 0, b32+ 39, 0, aliases+ 83}, /* 81 */ + { 7UL, b32+109, 0, P_BE | P_ACADEM, 0, b32+151, 0, aliases+136}, /* 82 */ + {15UL, b32+110, 0, P_BE | P_ACADEM, 0, b32+ 13, 0, aliases+ 20}, /* 83 */ + {16UL, b32+111, 0, P_BE | P_ATTEST, 0, b32+165, 0, aliases+ 64}, /* 84 */ + {10UL, b32+112, 0, P_BE | P_ATTEST, 0, b32+ 85, 0, aliases+ 4}, /* 85 */ + { 8UL, b32+118, 0, P_BE | P_ACADEM, 0, b32+181, 0, aliases+150}, /* 86 */ + { 8UL, b32+118, 0, P_LE | P_THIRDP, 0, b32+ 41, 0, aliases+159}, /* 87 */ + { 8UL, b32+118, b32+199, P_BE | P_ACADEM, 0, b32+171, 0, aliases+141}, /* 88 */ + { 6UL, b32+119, b32+193, P_BE | P_ATTEST, 0, b32+ 55, 0, aliases+121}, /* 89 */ + { 7UL, b32+121, b32+196, P_LE | P_ACADEM, 0, b32+127, 0, aliases+135}, /* 90 */ + {16UL, b32+124, 0, P_BE | P_CONFIR, 0, b32+ 17, 0, aliases+ 65}, /* 91 */ + { 8UL, b32+128, 0, P_LE | P_ATTEST, 0, b32+ 42, 0, aliases+140}, /* 92 */ + { 5UL, b32+129, 0, P_LE | P_ACADEM, 0, b32+ 58, 0, aliases+118}, /* 93 */ + {32UL, b32+131, b32+207, P_LE | P_CONFIR, b32+207, b32+107, b32+ 65, aliases+ 95}, /* 94 */ + {17UL, b32+139, 0, P_BE | P_ACADEM, 0, b32+ 44, 0, aliases+ 74}, /* 95 */ + { 6UL, b32+146, 0, P_BE | P_ACADEM, b32+193, b32+ 72, b32+180, aliases+125}, /* 96 */ + {16UL, b32+159, b32+203, P_BE | P_ACADEM, 0, b32+ 73, 0, aliases+ 31}, /* 97 */ + {15UL, b32+164, 0, P_BE | P_ATTEST, b32+ 2, b32+ 69, b32+164, aliases+ 21}, /* 98 */ + {12UL, b32+166, 0, P_BE | P_ACADEM, b32+201, b32+138, b32+ 24, aliases+ 14}, /* 99 */ + { 8UL, b32+169, 0, P_BE | P_ACADEM, 0, b32+146, 0, aliases+143}, /* 100 */ + {13UL, b32+179, 0, P_BE | P_ATTEST, 0, b32+ 45, 0, aliases+ 16}, /* 101 */ + {12UL, b32+186, b32+201, P_BE | P_ACADEM, 0, b32+168, 0, aliases+ 12}, /* 102 */ + {32UL, b32+188, b32+207, P_LE | P_ATTEST, b32+207, b32+ 23, b32+113, aliases+ 93}, /* 103 */ + {10UL, b32+190, b32+200, P_BE | P_ACADEM, 0, b32+112, 0, aliases+ 5}, /* 104 */ + { 0UL, 0, 0, P_BE | P_UNDFCL, 0, 0, 0, NULL }, /* terminating entry */ }; -# define NPRESETS 103 +# define NPRESETS 105 /* List of names with pointers to models, pre-sorted for use with bsearch() */ static const struct malias aliases[] = { - {"ARC", models+ 66}, /* 0 */ - {"B-CRC-32", models+ 6}, /* 1 */ - {"CKSUM", models+ 4}, /* 2 */ - {"CRC-10", models+ 83}, /* 3 */ - {"CRC-10/CDMA2000", models+102}, /* 4 */ - {"CRC-10/GSM", models+ 53}, /* 5 */ - {"CRC-11", models+ 61}, /* 6 */ - {"CRC-11/UMTS", models+ 58}, /* 7 */ - {"CRC-12/3GPP", models+ 75}, /* 8 */ - {"CRC-12/CDMA2000", models+100}, /* 9 */ - {"CRC-12/DECT", models+ 74}, /* 10 */ - {"CRC-12/GSM", models+ 97}, /* 11 */ - {"CRC-12/UMTS", models+ 75}, /* 12 */ - {"CRC-13/BBC", models+ 99}, /* 13 */ - {"CRC-14/DARC", models+ 36}, /* 14 */ - {"CRC-14/GSM", models+ 72}, /* 15 */ - {"CRC-15", models+ 81}, /* 16 */ - {"CRC-15/MPT1327", models+ 96}, /* 17 */ - {"CRC-16", models+ 66}, /* 18 */ - {"CRC-16/ACORN", models+ 17}, /* 19 */ - {"CRC-16/ARC", models+ 66}, /* 20 */ - {"CRC-16/AUG-CCITT", models+ 20}, /* 21 */ - {"CRC-16/BUYPASS", models+ 65}, /* 22 */ - {"CRC-16/CCITT", models+ 19}, /* 23 */ - {"CRC-16/CCITT-FALSE", models+ 24}, /* 24 */ - {"CRC-16/CCITT-TRUE", models+ 19}, /* 25 */ - {"CRC-16/CDMA2000", models+ 95}, /* 26 */ - {"CRC-16/CMS", models+ 69}, /* 27 */ - {"CRC-16/DARC", models+ 25}, /* 28 */ - {"CRC-16/DDS-110", models+ 68}, /* 29 */ - {"CRC-16/DECT-R", models+ 10}, /* 30 */ - {"CRC-16/DECT-X", models+ 9}, /* 31 */ - {"CRC-16/DNP", models+ 46}, /* 32 */ - {"CRC-16/EN-13757", models+ 45}, /* 33 */ - {"CRC-16/EPC", models+ 25}, /* 34 */ - {"CRC-16/GENIBUS", models+ 25}, /* 35 */ - {"CRC-16/GSM", models+ 18}, /* 36 */ - {"CRC-16/I-CODE", models+ 25}, /* 37 */ - {"CRC-16/IBM-SDLC", models+ 27}, /* 38 */ - {"CRC-16/IEC-61158-2", models+ 34}, /* 39 */ - {"CRC-16/ISO-HDLC", models+ 27}, /* 40 */ - {"CRC-16/LHA", models+ 66}, /* 41 */ - {"CRC-16/LJ1200", models+ 60}, /* 42 */ - {"CRC-16/LTE", models+ 17}, /* 43 */ - {"CRC-16/MAXIM", models+ 67}, /* 44 */ - {"CRC-16/MCRF4XX", models+ 26}, /* 45 */ - {"CRC-16/OPENSAFETY-A", models+ 52}, /* 46 */ - {"CRC-16/OPENSAFETY-B", models+ 62}, /* 47 */ - {"CRC-16/PROFIBUS", models+ 34}, /* 48 */ - {"CRC-16/RIELLO", models+ 22}, /* 49 */ - {"CRC-16/SPI-FUJITSU", models+ 20}, /* 50 */ - {"CRC-16/T10-DIF", models+ 82}, /* 51 */ - {"CRC-16/TELEDISK", models+ 89}, /* 52 */ - {"CRC-16/TMS37157", models+ 21}, /* 53 */ - {"CRC-16/UMTS", models+ 65}, /* 54 */ - {"CRC-16/USB", models+ 71}, /* 55 */ - {"CRC-16/VERIFONE", models+ 65}, /* 56 */ - {"CRC-17/CAN-FD", models+ 93}, /* 57 */ - {"CRC-21/CAN-FD", models+ 77}, /* 58 */ - {"CRC-24", models+ 79}, /* 59 */ - {"CRC-24/BLE", models+ 3}, /* 60 */ - {"CRC-24/FLEXRAY-A", models+ 55}, /* 61 */ - {"CRC-24/FLEXRAY-B", models+ 54}, /* 62 */ - {"CRC-24/INTERLAKEN", models+ 43}, /* 63 */ - {"CRC-24/LTE-A", models+ 78}, /* 64 */ - {"CRC-24/LTE-B", models+ 63}, /* 65 */ - {"CRC-24/OPENPGP", models+ 79}, /* 66 */ - {"CRC-24/OS-9", models+ 64}, /* 67 */ - {"CRC-3/GSM", models+ 56}, /* 68 */ - {"CRC-3/ROHC", models+ 57}, /* 69 */ - {"CRC-30/CDMA", models+ 73}, /* 70 */ - {"CRC-31/PHILIPS", models+ 14}, /* 71 */ - {"CRC-32", models+ 8}, /* 72 */ - {"CRC-32/AAL5", models+ 6}, /* 73 */ - {"CRC-32/ADCCP", models+ 8}, /* 74 */ - {"CRC-32/AUTOSAR", models+101}, /* 75 */ - {"CRC-32/BZIP2", models+ 6}, /* 76 */ - {"CRC-32/CASTAGNOLI", models+ 35}, /* 77 */ - {"CRC-32/DECT-B", models+ 6}, /* 78 */ - {"CRC-32/INTERLAKEN", models+ 35}, /* 79 */ - {"CRC-32/ISCSI", models+ 35}, /* 80 */ - {"CRC-32/MPEG-2", models+ 5}, /* 81 */ - {"CRC-32/POSIX", models+ 4}, /* 82 */ - {"CRC-32C", models+ 35}, /* 83 */ - {"CRC-32D", models+ 92}, /* 84 */ - {"CRC-32Q", models+ 76}, /* 85 */ - {"CRC-4/INTERLAKEN", models+ 41}, /* 86 */ - {"CRC-4/ITU", models+ 40}, /* 87 */ - {"CRC-40/GSM", models+ 2}, /* 88 */ - {"CRC-5/EPC", models+ 50}, /* 89 */ - {"CRC-5/ITU", models+ 91}, /* 90 */ - {"CRC-5/USB", models+ 37}, /* 91 */ - {"CRC-6/CDMA2000-A", models+ 87}, /* 92 */ - {"CRC-6/CDMA2000-B", models+ 29}, /* 93 */ - {"CRC-6/DARC", models+ 59}, /* 94 */ - {"CRC-6/GSM", models+ 94}, /* 95 */ - {"CRC-6/ITU", models+ 15}, /* 96 */ - {"CRC-64", models+ 47}, /* 97 */ - {"CRC-64/ECMA-182", models+ 47}, /* 98 */ - {"CRC-64/GO-ECMA", models+ 49}, /* 99 */ - {"CRC-64/GO-ISO", models+ 0}, /* 100 */ - {"CRC-64/WE", models+ 48}, /* 101 */ - {"CRC-64/XZ", models+ 49}, /* 102 */ - {"CRC-7", models+ 28}, /* 103 */ - {"CRC-7/ROHC", models+ 88}, /* 104 */ - {"CRC-7/UMTS", models+ 80}, /* 105 */ - {"CRC-8", models+ 11}, /* 106 */ - {"CRC-8/AES", models+ 33}, /* 107 */ - {"CRC-8/AUTOSAR", models+ 39}, /* 108 */ - {"CRC-8/BLUETOOTH", models+ 90}, /* 109 */ - {"CRC-8/CDMA2000", models+ 86}, /* 110 */ - {"CRC-8/DARC", models+ 44}, /* 111 */ - {"CRC-8/DVB-S2", models+ 98}, /* 112 */ - {"CRC-8/EBU", models+ 33}, /* 113 */ - {"CRC-8/GSM-A", models+ 30}, /* 114 */ - {"CRC-8/GSM-B", models+ 51}, /* 115 */ - {"CRC-8/I-CODE", models+ 31}, /* 116 */ - {"CRC-8/ITU", models+ 12}, /* 117 */ - {"CRC-8/LTE", models+ 84}, /* 118 */ - {"CRC-8/MAXIM", models+ 42}, /* 119 */ - {"CRC-8/OPENSAFETY", models+ 38}, /* 120 */ - {"CRC-8/ROHC", models+ 13}, /* 121 */ - {"CRC-8/SAE-J1850", models+ 32}, /* 122 */ - {"CRC-8/WCDMA", models+ 85}, /* 123 */ - {"CRC-82/DARC", models+ 16}, /* 124 */ - {"CRC-A", models+ 23}, /* 125 */ - {"CRC-B", models+ 27}, /* 126 */ - {"CRC-CCITT", models+ 19}, /* 127 */ - {"CRC-IBM", models+ 66}, /* 128 */ - {"DOW-CRC", models+ 42}, /* 129 */ - {"JAMCRC", models+ 7}, /* 130 */ - {"KERMIT", models+ 19}, /* 131 */ - {"MODBUS", models+ 70}, /* 132 */ - {"PKZIP", models+ 8}, /* 133 */ - {"R-CRC-16", models+ 10}, /* 134 */ - {"X-25", models+ 27}, /* 135 */ - {"X-CRC-12", models+ 74}, /* 136 */ - {"X-CRC-16", models+ 9}, /* 137 */ - {"XFER", models+ 1}, /* 138 */ - {"XMODEM", models+ 17}, /* 139 */ - {"ZMODEM", models+ 17}, /* 140 */ - {NULL, NULL }, /* terminating entry */ + {"ARC", models+ 68}, /* 0 */ + {"B-CRC-32", models+ 6}, /* 1 */ + {"CKSUM", models+ 4}, /* 2 */ + {"CRC-10", models+ 85}, /* 3 */ + {"CRC-10/ATM", models+ 85}, /* 4 */ + {"CRC-10/CDMA2000", models+104}, /* 5 */ + {"CRC-10/GSM", models+ 55}, /* 6 */ + {"CRC-10/I-610", models+ 85}, /* 7 */ + {"CRC-11", models+ 63}, /* 8 */ + {"CRC-11/FLEXRAY", models+ 63}, /* 9 */ + {"CRC-11/UMTS", models+ 60}, /* 10 */ + {"CRC-12/3GPP", models+ 77}, /* 11 */ + {"CRC-12/CDMA2000", models+102}, /* 12 */ + {"CRC-12/DECT", models+ 76}, /* 13 */ + {"CRC-12/GSM", models+ 99}, /* 14 */ + {"CRC-12/UMTS", models+ 77}, /* 15 */ + {"CRC-13/BBC", models+101}, /* 16 */ + {"CRC-14/DARC", models+ 37}, /* 17 */ + {"CRC-14/GSM", models+ 74}, /* 18 */ + {"CRC-15", models+ 83}, /* 19 */ + {"CRC-15/CAN", models+ 83}, /* 20 */ + {"CRC-15/MPT1327", models+ 98}, /* 21 */ + {"CRC-16", models+ 68}, /* 22 */ + {"CRC-16/ACORN", models+ 18}, /* 23 */ + {"CRC-16/ARC", models+ 68}, /* 24 */ + {"CRC-16/AUG-CCITT", models+ 21}, /* 25 */ + {"CRC-16/AUTOSAR", models+ 25}, /* 26 */ + {"CRC-16/BUYPASS", models+ 67}, /* 27 */ + {"CRC-16/CCITT", models+ 20}, /* 28 */ + {"CRC-16/CCITT-FALSE", models+ 25}, /* 29 */ + {"CRC-16/CCITT-TRUE", models+ 20}, /* 30 */ + {"CRC-16/CDMA2000", models+ 97}, /* 31 */ + {"CRC-16/CMS", models+ 71}, /* 32 */ + {"CRC-16/DARC", models+ 26}, /* 33 */ + {"CRC-16/DDS-110", models+ 70}, /* 34 */ + {"CRC-16/DECT-R", models+ 10}, /* 35 */ + {"CRC-16/DECT-X", models+ 9}, /* 36 */ + {"CRC-16/DNP", models+ 48}, /* 37 */ + {"CRC-16/EN-13757", models+ 47}, /* 38 */ + {"CRC-16/EPC", models+ 26}, /* 39 */ + {"CRC-16/EPC-C1G2", models+ 26}, /* 40 */ + {"CRC-16/GENIBUS", models+ 26}, /* 41 */ + {"CRC-16/GSM", models+ 19}, /* 42 */ + {"CRC-16/I-CODE", models+ 26}, /* 43 */ + {"CRC-16/IBM-3740", models+ 25}, /* 44 */ + {"CRC-16/IBM-SDLC", models+ 28}, /* 45 */ + {"CRC-16/IEC-61158-2", models+ 35}, /* 46 */ + {"CRC-16/ISO-HDLC", models+ 28}, /* 47 */ + {"CRC-16/ISO-IEC-14443-3-A", models+ 24}, /* 48 */ + {"CRC-16/ISO-IEC-14443-3-B", models+ 28}, /* 49 */ + {"CRC-16/KERMIT", models+ 20}, /* 50 */ + {"CRC-16/LHA", models+ 68}, /* 51 */ + {"CRC-16/LJ1200", models+ 62}, /* 52 */ + {"CRC-16/LTE", models+ 18}, /* 53 */ + {"CRC-16/MAXIM", models+ 69}, /* 54 */ + {"CRC-16/MAXIM-DOW", models+ 69}, /* 55 */ + {"CRC-16/MCRF4XX", models+ 27}, /* 56 */ + {"CRC-16/MODBUS", models+ 72}, /* 57 */ + {"CRC-16/NRSC-5", models+ 14}, /* 58 */ + {"CRC-16/OPENSAFETY-A", models+ 54}, /* 59 */ + {"CRC-16/OPENSAFETY-B", models+ 64}, /* 60 */ + {"CRC-16/PROFIBUS", models+ 35}, /* 61 */ + {"CRC-16/RIELLO", models+ 23}, /* 62 */ + {"CRC-16/SPI-FUJITSU", models+ 21}, /* 63 */ + {"CRC-16/T10-DIF", models+ 84}, /* 64 */ + {"CRC-16/TELEDISK", models+ 91}, /* 65 */ + {"CRC-16/TMS37157", models+ 22}, /* 66 */ + {"CRC-16/UMTS", models+ 67}, /* 67 */ + {"CRC-16/USB", models+ 73}, /* 68 */ + {"CRC-16/V-41-LSB", models+ 20}, /* 69 */ + {"CRC-16/V-41-MSB", models+ 18}, /* 70 */ + {"CRC-16/VERIFONE", models+ 67}, /* 71 */ + {"CRC-16/X-25", models+ 28}, /* 72 */ + {"CRC-16/XMODEM", models+ 18}, /* 73 */ + {"CRC-17/CAN-FD", models+ 95}, /* 74 */ + {"CRC-21/CAN-FD", models+ 79}, /* 75 */ + {"CRC-24", models+ 81}, /* 76 */ + {"CRC-24/BLE", models+ 3}, /* 77 */ + {"CRC-24/FLEXRAY-A", models+ 57}, /* 78 */ + {"CRC-24/FLEXRAY-B", models+ 56}, /* 79 */ + {"CRC-24/INTERLAKEN", models+ 45}, /* 80 */ + {"CRC-24/LTE-A", models+ 80}, /* 81 */ + {"CRC-24/LTE-B", models+ 65}, /* 82 */ + {"CRC-24/OPENPGP", models+ 81}, /* 83 */ + {"CRC-24/OS-9", models+ 66}, /* 84 */ + {"CRC-3/GSM", models+ 58}, /* 85 */ + {"CRC-3/ROHC", models+ 59}, /* 86 */ + {"CRC-30/CDMA", models+ 75}, /* 87 */ + {"CRC-31/PHILIPS", models+ 15}, /* 88 */ + {"CRC-32", models+ 8}, /* 89 */ + {"CRC-32/AAL5", models+ 6}, /* 90 */ + {"CRC-32/ADCCP", models+ 8}, /* 91 */ + {"CRC-32/AIXM", models+ 78}, /* 92 */ + {"CRC-32/AUTOSAR", models+103}, /* 93 */ + {"CRC-32/BASE91-C", models+ 36}, /* 94 */ + {"CRC-32/BASE91-D", models+ 94}, /* 95 */ + {"CRC-32/BZIP2", models+ 6}, /* 96 */ + {"CRC-32/CASTAGNOLI", models+ 36}, /* 97 */ + {"CRC-32/CKSUM", models+ 4}, /* 98 */ + {"CRC-32/DECT-B", models+ 6}, /* 99 */ + {"CRC-32/INTERLAKEN", models+ 36}, /* 100 */ + {"CRC-32/ISCSI", models+ 36}, /* 101 */ + {"CRC-32/ISO-HDLC", models+ 8}, /* 102 */ + {"CRC-32/JAMCRC", models+ 7}, /* 103 */ + {"CRC-32/MPEG-2", models+ 5}, /* 104 */ + {"CRC-32/POSIX", models+ 4}, /* 105 */ + {"CRC-32/V-42", models+ 8}, /* 106 */ + {"CRC-32/XFER", models+ 1}, /* 107 */ + {"CRC-32/XZ", models+ 8}, /* 108 */ + {"CRC-32C", models+ 36}, /* 109 */ + {"CRC-32D", models+ 94}, /* 110 */ + {"CRC-32Q", models+ 78}, /* 111 */ + {"CRC-4/G-704", models+ 41}, /* 112 */ + {"CRC-4/INTERLAKEN", models+ 42}, /* 113 */ + {"CRC-4/ITU", models+ 41}, /* 114 */ + {"CRC-40/GSM", models+ 2}, /* 115 */ + {"CRC-5/EPC", models+ 52}, /* 116 */ + {"CRC-5/EPC-C1G2", models+ 52}, /* 117 */ + {"CRC-5/G-704", models+ 93}, /* 118 */ + {"CRC-5/ITU", models+ 93}, /* 119 */ + {"CRC-5/USB", models+ 38}, /* 120 */ + {"CRC-6/CDMA2000-A", models+ 89}, /* 121 */ + {"CRC-6/CDMA2000-B", models+ 30}, /* 122 */ + {"CRC-6/DARC", models+ 61}, /* 123 */ + {"CRC-6/G-704", models+ 16}, /* 124 */ + {"CRC-6/GSM", models+ 96}, /* 125 */ + {"CRC-6/ITU", models+ 16}, /* 126 */ + {"CRC-64", models+ 49}, /* 127 */ + {"CRC-64/ECMA-182", models+ 49}, /* 128 */ + {"CRC-64/GO-ECMA", models+ 51}, /* 129 */ + {"CRC-64/GO-ISO", models+ 0}, /* 130 */ + {"CRC-64/WE", models+ 50}, /* 131 */ + {"CRC-64/XZ", models+ 51}, /* 132 */ + {"CRC-7", models+ 29}, /* 133 */ + {"CRC-7/MMC", models+ 29}, /* 134 */ + {"CRC-7/ROHC", models+ 90}, /* 135 */ + {"CRC-7/UMTS", models+ 82}, /* 136 */ + {"CRC-8", models+ 11}, /* 137 */ + {"CRC-8/AES", models+ 34}, /* 138 */ + {"CRC-8/AUTOSAR", models+ 40}, /* 139 */ + {"CRC-8/BLUETOOTH", models+ 92}, /* 140 */ + {"CRC-8/CDMA2000", models+ 88}, /* 141 */ + {"CRC-8/DARC", models+ 46}, /* 142 */ + {"CRC-8/DVB-S2", models+100}, /* 143 */ + {"CRC-8/EBU", models+ 34}, /* 144 */ + {"CRC-8/GSM-A", models+ 31}, /* 145 */ + {"CRC-8/GSM-B", models+ 53}, /* 146 */ + {"CRC-8/I-432-1", models+ 12}, /* 147 */ + {"CRC-8/I-CODE", models+ 32}, /* 148 */ + {"CRC-8/ITU", models+ 12}, /* 149 */ + {"CRC-8/LTE", models+ 86}, /* 150 */ + {"CRC-8/MAXIM", models+ 43}, /* 151 */ + {"CRC-8/MAXIM-DOW", models+ 43}, /* 152 */ + {"CRC-8/NRSC-5", models+ 44}, /* 153 */ + {"CRC-8/OPENSAFETY", models+ 39}, /* 154 */ + {"CRC-8/ROHC", models+ 13}, /* 155 */ + {"CRC-8/SAE-J1850", models+ 33}, /* 156 */ + {"CRC-8/SMBUS", models+ 11}, /* 157 */ + {"CRC-8/TECH-3250", models+ 34}, /* 158 */ + {"CRC-8/WCDMA", models+ 87}, /* 159 */ + {"CRC-82/DARC", models+ 17}, /* 160 */ + {"CRC-A", models+ 24}, /* 161 */ + {"CRC-B", models+ 28}, /* 162 */ + {"CRC-CCITT", models+ 20}, /* 163 */ + {"CRC-IBM", models+ 68}, /* 164 */ + {"DOW-CRC", models+ 43}, /* 165 */ + {"JAMCRC", models+ 7}, /* 166 */ + {"KERMIT", models+ 20}, /* 167 */ + {"MODBUS", models+ 72}, /* 168 */ + {"PKZIP", models+ 8}, /* 169 */ + {"R-CRC-16", models+ 10}, /* 170 */ + {"X-25", models+ 28}, /* 171 */ + {"X-CRC-12", models+ 76}, /* 172 */ + {"X-CRC-16", models+ 9}, /* 173 */ + {"XFER", models+ 1}, /* 174 */ + {"XMODEM", models+ 18}, /* 175 */ + {"ZMODEM", models+ 18}, /* 176 */ + {NULL, NULL }, /* terminating entry */ }; -# define NALIASES 141 +# define NALIASES 177 # endif /* BMP_BIT */ #else /* PRESETS */ static const struct mpreset models[] = { - { 0UL, 0, 0, P_BE, 0, 0, 0, NULL }, /* terminating entry */ + { 0UL, 0, 0, P_BE | P_UNDFCL, 0, 0, 0, NULL }, /* terminating entry */ }; # define NPRESETS 0 diff --git a/client/reveng/reveng.h b/client/reveng/reveng.h index 08a7a6d1a..70f594072 100644 --- a/client/reveng/reveng.h +++ b/client/reveng/reveng.h @@ -1,5 +1,5 @@ /* reveng.h - * Greg Cook, 26/Jul/2018 + * Greg Cook, 21/Nov/2018 */ /* CRC RevEng: arbitrary-precision CRC calculator and algorithm finder @@ -93,7 +93,7 @@ /* Global definitions */ /* CRC RevEng version string */ -#define VERSION "1.5.3" +#define VERSION "1.6.0" /* bmpbit.c */ typedef BMP_T bmp_t; @@ -111,6 +111,19 @@ extern void setbmp(void); #define P_LTLBYT 64 #define P_DIRECT 128 +/* class flags */ +#define P_CLBIT0 256 +#define P_CLBIT1 512 +#define P_SOLID 1024 +#define P_CLMASK (P_SOLID | P_CLBIT1 | P_CLBIT0) + +#define P_UNDFCL 0 +#define P_UNCONF (P_CLBIT0) +#define P_THIRDP (P_CLBIT1) +#define P_ACADEM (P_CLBIT1 | P_CLBIT0) +#define P_CONFIR (P_SOLID | P_CLBIT0) +#define P_ATTEST (P_SOLID | P_CLBIT1) + /* default flags */ #define P_BE (P_RTJUST | P_MULXN) #define P_LE (P_REFIN | P_REFOUT | P_MULXN) @@ -187,7 +200,7 @@ extern void mrev(model_t *model); extern void mnovel(model_t *model); /* preset.c */ -#define M_OVERWR 256 +#define M_OVERWR 1 extern int mbynam(model_t *dest, const char *key); extern void mbynum(model_t *dest, int num); @@ -196,12 +209,12 @@ extern char *mnames(void); extern void mmatch(model_t *model, int flags); /* reveng.c */ -#define R_HAVEP 512 -#define R_HAVEI 1024 -#define R_HAVERI 2048 -#define R_HAVERO 4096 -#define R_HAVEX 8192 -#define R_HAVEQ 16384 +#define R_HAVEP 1 +#define R_HAVEI 2 +#define R_HAVERI 4 +#define R_HAVERO 8 +#define R_HAVEX 16 +#define R_HAVEQ 32 #define R_SPMASK 0x7FFFFFFUL diff --git a/client/scripting.c b/client/scripting.c index 762a9c470..3d3518ced 100644 --- a/client/scripting.c +++ b/client/scripting.c @@ -515,7 +515,7 @@ static int l_sha1(lua_State *L) { static int l_reveng_models(lua_State *L){ // This array needs to be adjusted if RevEng adds more crc-models. -#define NMODELS 103 +#define NMODELS 105 int count = 0; uint8_t in_width = luaL_checkunsigned(L, 1);