197521Sphk/*- 297521Sphk * COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or 397521Sphk * code or tables extracted from it, as desired without restriction. 4139815Simp */ 5139815Simp 6139815Simp/* 797521Sphk * First, the polynomial itself and its table of feedback terms. The 897521Sphk * polynomial is 997521Sphk * X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 1097521Sphk * 1197521Sphk * Note that we take it "backwards" and put the highest-order term in 1297521Sphk * the lowest-order bit. The X^32 term is "implied"; the LSB is the 1397521Sphk * X^31 term, etc. The X^0 term (usually shown as "+1") results in 1497521Sphk * the MSB being 1 1597521Sphk * 1697521Sphk * Note that the usual hardware shift register implementation, which 1797521Sphk * is what we're using (we're merely optimizing it by doing eight-bit 1897521Sphk * chunks at a time) shifts bits into the lowest-order term. In our 1997521Sphk * implementation, that means shifting towards the right. Why do we 2097521Sphk * do it this way? Because the calculated CRC must be transmitted in 2197521Sphk * order from highest-order term to lowest-order term. UARTs transmit 2297521Sphk * characters in order from LSB to MSB. By storing the CRC this way 2397521Sphk * we hand it to the UART in the order low-byte to high-byte; the UART 2497521Sphk * sends each low-bit to hight-bit; and the result is transmission bit 2597521Sphk * by bit from highest- to lowest-order term without requiring any bit 2697521Sphk * shuffling on our part. Reception works similarly 2797521Sphk * 2897521Sphk * The feedback terms table consists of 256, 32-bit entries. Notes 2997521Sphk * 3097521Sphk * The table can be generated at runtime if desired; code to do so 3197521Sphk * is shown later. It might not be obvious, but the feedback 3297521Sphk * terms simply represent the results of eight shift/xor opera 3397521Sphk * tions for all combinations of data and CRC register values 3497521Sphk * 3597521Sphk * The values must be right-shifted by eight bits by the "updcrc 3697521Sphk * logic; the shift must be unsigned (bring in zeroes). On some 3797521Sphk * hardware you could probably optimize the shift in assembler by 3897521Sphk * using byte-swap instructions 3997521Sphk * polynomial $edb88320 4097521Sphk * 4197521Sphk * 4297521Sphk * CRC32 code derived from work by Gary S. Brown. 4397521Sphk */ 4497521Sphk 45116189Sobrien#include <sys/cdefs.h> 46116189Sobrien__FBSDID("$FreeBSD$"); 47116189Sobrien 4897521Sphk#include <sys/param.h> 4997521Sphk#include <sys/systm.h> 5097521Sphk 51233517Smariusconst uint32_t crc32_tab[] = { 5297521Sphk 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 5397521Sphk 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 5497521Sphk 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 5597521Sphk 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 5697521Sphk 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 5797521Sphk 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 5897521Sphk 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 5997521Sphk 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 6097521Sphk 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 6197521Sphk 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 6297521Sphk 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 6397521Sphk 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 6497521Sphk 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 6597521Sphk 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 6697521Sphk 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 6797521Sphk 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 6897521Sphk 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 6997521Sphk 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 7097521Sphk 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 7197521Sphk 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 7297521Sphk 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 7397521Sphk 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 7497521Sphk 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 7597521Sphk 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 7697521Sphk 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 7797521Sphk 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 7897521Sphk 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 7997521Sphk 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 8097521Sphk 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 8197521Sphk 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 8297521Sphk 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 8397521Sphk 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 8497521Sphk 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 8597521Sphk 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 8697521Sphk 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 8797521Sphk 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 8897521Sphk 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 8997521Sphk 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 9097521Sphk 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 9197521Sphk 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 9297521Sphk 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 9397521Sphk 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 9497521Sphk 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d 9597521Sphk}; 9697521Sphk 97145604Smarcel/* 98145604Smarcel * A function that calculates the CRC-32 based on the table above is 99145604Smarcel * given below for documentation purposes. An equivalent implementation 100145604Smarcel * of this function that's actually used in the kernel can be found 101145611Smarcel * in sys/libkern.h, where it can be inlined. 102145604Smarcel * 103145604Smarcel * uint32_t 104145604Smarcel * crc32(const void *buf, size_t size) 105145604Smarcel * { 106145604Smarcel * const uint8_t *p = buf; 107145604Smarcel * uint32_t crc; 108145604Smarcel * 109145604Smarcel * crc = ~0U; 110145604Smarcel * while (size--) 111145604Smarcel * crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8); 112145604Smarcel * return crc ^ ~0U; 113145604Smarcel * } 114145604Smarcel */ 115188605Srrs 116188605Srrs/* CRC32C routines, these use a different polynomial */ 117188605Srrs/*****************************************************************/ 118188605Srrs/* */ 119188605Srrs/* CRC LOOKUP TABLE */ 120188605Srrs/* ================ */ 121188605Srrs/* The following CRC lookup table was generated automagically */ 122188605Srrs/* by the Rocksoft^tm Model CRC Algorithm Table Generation */ 123188605Srrs/* Program V1.0 using the following model parameters: */ 124188605Srrs/* */ 125188605Srrs/* Width : 4 bytes. */ 126188605Srrs/* Poly : 0x1EDC6F41L */ 127188605Srrs/* Reverse : TRUE. */ 128188605Srrs/* */ 129188605Srrs/* For more information on the Rocksoft^tm Model CRC Algorithm, */ 130188605Srrs/* see the document titled "A Painless Guide to CRC Error */ 131188605Srrs/* Detection Algorithms" by Ross Williams */ 132188605Srrs/* (ross@guest.adelaide.edu.au.). This document is likely to be */ 133188605Srrs/* in the FTP archive "ftp.adelaide.edu.au/pub/rocksoft". */ 134188605Srrs/* */ 135188605Srrs/*****************************************************************/ 136188605Srrs 137233517Smariusstatic const uint32_t crc32Table[256] = { 138188605Srrs 0x00000000L, 0xF26B8303L, 0xE13B70F7L, 0x1350F3F4L, 139188605Srrs 0xC79A971FL, 0x35F1141CL, 0x26A1E7E8L, 0xD4CA64EBL, 140188605Srrs 0x8AD958CFL, 0x78B2DBCCL, 0x6BE22838L, 0x9989AB3BL, 141188605Srrs 0x4D43CFD0L, 0xBF284CD3L, 0xAC78BF27L, 0x5E133C24L, 142188605Srrs 0x105EC76FL, 0xE235446CL, 0xF165B798L, 0x030E349BL, 143188605Srrs 0xD7C45070L, 0x25AFD373L, 0x36FF2087L, 0xC494A384L, 144188605Srrs 0x9A879FA0L, 0x68EC1CA3L, 0x7BBCEF57L, 0x89D76C54L, 145188605Srrs 0x5D1D08BFL, 0xAF768BBCL, 0xBC267848L, 0x4E4DFB4BL, 146188605Srrs 0x20BD8EDEL, 0xD2D60DDDL, 0xC186FE29L, 0x33ED7D2AL, 147188605Srrs 0xE72719C1L, 0x154C9AC2L, 0x061C6936L, 0xF477EA35L, 148188605Srrs 0xAA64D611L, 0x580F5512L, 0x4B5FA6E6L, 0xB93425E5L, 149188605Srrs 0x6DFE410EL, 0x9F95C20DL, 0x8CC531F9L, 0x7EAEB2FAL, 150188605Srrs 0x30E349B1L, 0xC288CAB2L, 0xD1D83946L, 0x23B3BA45L, 151188605Srrs 0xF779DEAEL, 0x05125DADL, 0x1642AE59L, 0xE4292D5AL, 152188605Srrs 0xBA3A117EL, 0x4851927DL, 0x5B016189L, 0xA96AE28AL, 153188605Srrs 0x7DA08661L, 0x8FCB0562L, 0x9C9BF696L, 0x6EF07595L, 154188605Srrs 0x417B1DBCL, 0xB3109EBFL, 0xA0406D4BL, 0x522BEE48L, 155188605Srrs 0x86E18AA3L, 0x748A09A0L, 0x67DAFA54L, 0x95B17957L, 156188605Srrs 0xCBA24573L, 0x39C9C670L, 0x2A993584L, 0xD8F2B687L, 157188605Srrs 0x0C38D26CL, 0xFE53516FL, 0xED03A29BL, 0x1F682198L, 158188605Srrs 0x5125DAD3L, 0xA34E59D0L, 0xB01EAA24L, 0x42752927L, 159188605Srrs 0x96BF4DCCL, 0x64D4CECFL, 0x77843D3BL, 0x85EFBE38L, 160188605Srrs 0xDBFC821CL, 0x2997011FL, 0x3AC7F2EBL, 0xC8AC71E8L, 161188605Srrs 0x1C661503L, 0xEE0D9600L, 0xFD5D65F4L, 0x0F36E6F7L, 162188605Srrs 0x61C69362L, 0x93AD1061L, 0x80FDE395L, 0x72966096L, 163188605Srrs 0xA65C047DL, 0x5437877EL, 0x4767748AL, 0xB50CF789L, 164188605Srrs 0xEB1FCBADL, 0x197448AEL, 0x0A24BB5AL, 0xF84F3859L, 165188605Srrs 0x2C855CB2L, 0xDEEEDFB1L, 0xCDBE2C45L, 0x3FD5AF46L, 166188605Srrs 0x7198540DL, 0x83F3D70EL, 0x90A324FAL, 0x62C8A7F9L, 167188605Srrs 0xB602C312L, 0x44694011L, 0x5739B3E5L, 0xA55230E6L, 168188605Srrs 0xFB410CC2L, 0x092A8FC1L, 0x1A7A7C35L, 0xE811FF36L, 169188605Srrs 0x3CDB9BDDL, 0xCEB018DEL, 0xDDE0EB2AL, 0x2F8B6829L, 170188605Srrs 0x82F63B78L, 0x709DB87BL, 0x63CD4B8FL, 0x91A6C88CL, 171188605Srrs 0x456CAC67L, 0xB7072F64L, 0xA457DC90L, 0x563C5F93L, 172188605Srrs 0x082F63B7L, 0xFA44E0B4L, 0xE9141340L, 0x1B7F9043L, 173188605Srrs 0xCFB5F4A8L, 0x3DDE77ABL, 0x2E8E845FL, 0xDCE5075CL, 174188605Srrs 0x92A8FC17L, 0x60C37F14L, 0x73938CE0L, 0x81F80FE3L, 175188605Srrs 0x55326B08L, 0xA759E80BL, 0xB4091BFFL, 0x466298FCL, 176188605Srrs 0x1871A4D8L, 0xEA1A27DBL, 0xF94AD42FL, 0x0B21572CL, 177188605Srrs 0xDFEB33C7L, 0x2D80B0C4L, 0x3ED04330L, 0xCCBBC033L, 178188605Srrs 0xA24BB5A6L, 0x502036A5L, 0x4370C551L, 0xB11B4652L, 179188605Srrs 0x65D122B9L, 0x97BAA1BAL, 0x84EA524EL, 0x7681D14DL, 180188605Srrs 0x2892ED69L, 0xDAF96E6AL, 0xC9A99D9EL, 0x3BC21E9DL, 181188605Srrs 0xEF087A76L, 0x1D63F975L, 0x0E330A81L, 0xFC588982L, 182188605Srrs 0xB21572C9L, 0x407EF1CAL, 0x532E023EL, 0xA145813DL, 183188605Srrs 0x758FE5D6L, 0x87E466D5L, 0x94B49521L, 0x66DF1622L, 184188605Srrs 0x38CC2A06L, 0xCAA7A905L, 0xD9F75AF1L, 0x2B9CD9F2L, 185188605Srrs 0xFF56BD19L, 0x0D3D3E1AL, 0x1E6DCDEEL, 0xEC064EEDL, 186188605Srrs 0xC38D26C4L, 0x31E6A5C7L, 0x22B65633L, 0xD0DDD530L, 187188605Srrs 0x0417B1DBL, 0xF67C32D8L, 0xE52CC12CL, 0x1747422FL, 188188605Srrs 0x49547E0BL, 0xBB3FFD08L, 0xA86F0EFCL, 0x5A048DFFL, 189188605Srrs 0x8ECEE914L, 0x7CA56A17L, 0x6FF599E3L, 0x9D9E1AE0L, 190188605Srrs 0xD3D3E1ABL, 0x21B862A8L, 0x32E8915CL, 0xC083125FL, 191188605Srrs 0x144976B4L, 0xE622F5B7L, 0xF5720643L, 0x07198540L, 192188605Srrs 0x590AB964L, 0xAB613A67L, 0xB831C993L, 0x4A5A4A90L, 193188605Srrs 0x9E902E7BL, 0x6CFBAD78L, 0x7FAB5E8CL, 0x8DC0DD8FL, 194188605Srrs 0xE330A81AL, 0x115B2B19L, 0x020BD8EDL, 0xF0605BEEL, 195188605Srrs 0x24AA3F05L, 0xD6C1BC06L, 0xC5914FF2L, 0x37FACCF1L, 196188605Srrs 0x69E9F0D5L, 0x9B8273D6L, 0x88D28022L, 0x7AB90321L, 197188605Srrs 0xAE7367CAL, 0x5C18E4C9L, 0x4F48173DL, 0xBD23943EL, 198188605Srrs 0xF36E6F75L, 0x0105EC76L, 0x12551F82L, 0xE03E9C81L, 199188605Srrs 0x34F4F86AL, 0xC69F7B69L, 0xD5CF889DL, 0x27A40B9EL, 200188605Srrs 0x79B737BAL, 0x8BDCB4B9L, 0x988C474DL, 0x6AE7C44EL, 201188605Srrs 0xBE2DA0A5L, 0x4C4623A6L, 0x5F16D052L, 0xAD7D5351L 202188605Srrs}; 203188605Srrs 204188605Srrsstatic uint32_t 205188605Srrssingletable_crc32c(uint32_t crc, const void *buf, size_t size) 206188605Srrs{ 207188605Srrs const uint8_t *p = buf; 208188605Srrs 209188605Srrs 210188605Srrs while (size--) 211188605Srrs crc = crc32Table[(crc ^ *p++) & 0xff] ^ (crc >> 8); 212188605Srrs 213188605Srrs return crc; 214188605Srrs} 215188605Srrs 216188605Srrs 217188605Srrs/* 218188605Srrs * Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved 219188605Srrs * 220188605Srrs * 221188605Srrs * This software program is licensed subject to the BSD License, available at 222188605Srrs * http://www.opensource.org/licenses/bsd-license.html. 223188605Srrs * 224188605Srrs * Abstract: 225188605Srrs * 226188605Srrs * Tables for software CRC generation 227188605Srrs */ 228188605Srrs 229188605Srrs/* 230188605Srrs * The following CRC lookup table was generated automagically using the 231188605Srrs * following model parameters: 232188605Srrs * 233188605Srrs * Generator Polynomial = ................. 0x1EDC6F41 234188605Srrs * Generator Polynomial Length = .......... 32 bits 235188605Srrs * Reflected Bits = ....................... TRUE 236188605Srrs * Table Generation Offset = .............. 32 bits 237188605Srrs * Number of Slices = ..................... 8 slices 238188605Srrs * Slice Lengths = ........................ 8 8 8 8 8 8 8 8 239188605Srrs * Directory Name = ....................... .\ 240188605Srrs * File Name = ............................ 8x256_tables.c 241188605Srrs */ 242188605Srrs 243233517Smariusstatic const uint32_t sctp_crc_tableil8_o32[256] = 244188605Srrs{ 245188605Srrs 0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB, 246188605Srrs 0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24, 247188605Srrs 0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384, 248188605Srrs 0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B, 249188605Srrs 0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35, 250188605Srrs 0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA, 251188605Srrs 0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A, 252188605Srrs 0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595, 253188605Srrs 0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957, 254188605Srrs 0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198, 255188605Srrs 0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38, 256188605Srrs 0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7, 257188605Srrs 0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789, 258188605Srrs 0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46, 259188605Srrs 0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6, 260188605Srrs 0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829, 261188605Srrs 0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93, 262188605Srrs 0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C, 263188605Srrs 0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC, 264188605Srrs 0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033, 265188605Srrs 0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D, 266188605Srrs 0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982, 267188605Srrs 0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622, 268188605Srrs 0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED, 269188605Srrs 0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F, 270188605Srrs 0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0, 271188605Srrs 0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540, 272188605Srrs 0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F, 273188605Srrs 0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1, 274188605Srrs 0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E, 275188605Srrs 0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E, 276188605Srrs 0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351 277188605Srrs}; 278188605Srrs 279188605Srrs/* 280188605Srrs * end of the CRC lookup table crc_tableil8_o32 281188605Srrs */ 282188605Srrs 283188605Srrs 284188605Srrs 285188605Srrs/* 286188605Srrs * The following CRC lookup table was generated automagically using the 287188605Srrs * following model parameters: 288188605Srrs * 289188605Srrs * Generator Polynomial = ................. 0x1EDC6F41 290188605Srrs * Generator Polynomial Length = .......... 32 bits 291188605Srrs * Reflected Bits = ....................... TRUE 292188605Srrs * Table Generation Offset = .............. 32 bits 293188605Srrs * Number of Slices = ..................... 8 slices 294188605Srrs * Slice Lengths = ........................ 8 8 8 8 8 8 8 8 295188605Srrs * Directory Name = ....................... .\ 296188605Srrs * File Name = ............................ 8x256_tables.c 297188605Srrs */ 298188605Srrs 299233517Smariusstatic const uint32_t sctp_crc_tableil8_o40[256] = 300188605Srrs{ 301188605Srrs 0x00000000, 0x13A29877, 0x274530EE, 0x34E7A899, 0x4E8A61DC, 0x5D28F9AB, 0x69CF5132, 0x7A6DC945, 302188605Srrs 0x9D14C3B8, 0x8EB65BCF, 0xBA51F356, 0xA9F36B21, 0xD39EA264, 0xC03C3A13, 0xF4DB928A, 0xE7790AFD, 303188605Srrs 0x3FC5F181, 0x2C6769F6, 0x1880C16F, 0x0B225918, 0x714F905D, 0x62ED082A, 0x560AA0B3, 0x45A838C4, 304188605Srrs 0xA2D13239, 0xB173AA4E, 0x859402D7, 0x96369AA0, 0xEC5B53E5, 0xFFF9CB92, 0xCB1E630B, 0xD8BCFB7C, 305188605Srrs 0x7F8BE302, 0x6C297B75, 0x58CED3EC, 0x4B6C4B9B, 0x310182DE, 0x22A31AA9, 0x1644B230, 0x05E62A47, 306188605Srrs 0xE29F20BA, 0xF13DB8CD, 0xC5DA1054, 0xD6788823, 0xAC154166, 0xBFB7D911, 0x8B507188, 0x98F2E9FF, 307188605Srrs 0x404E1283, 0x53EC8AF4, 0x670B226D, 0x74A9BA1A, 0x0EC4735F, 0x1D66EB28, 0x298143B1, 0x3A23DBC6, 308188605Srrs 0xDD5AD13B, 0xCEF8494C, 0xFA1FE1D5, 0xE9BD79A2, 0x93D0B0E7, 0x80722890, 0xB4958009, 0xA737187E, 309188605Srrs 0xFF17C604, 0xECB55E73, 0xD852F6EA, 0xCBF06E9D, 0xB19DA7D8, 0xA23F3FAF, 0x96D89736, 0x857A0F41, 310188605Srrs 0x620305BC, 0x71A19DCB, 0x45463552, 0x56E4AD25, 0x2C896460, 0x3F2BFC17, 0x0BCC548E, 0x186ECCF9, 311188605Srrs 0xC0D23785, 0xD370AFF2, 0xE797076B, 0xF4359F1C, 0x8E585659, 0x9DFACE2E, 0xA91D66B7, 0xBABFFEC0, 312188605Srrs 0x5DC6F43D, 0x4E646C4A, 0x7A83C4D3, 0x69215CA4, 0x134C95E1, 0x00EE0D96, 0x3409A50F, 0x27AB3D78, 313188605Srrs 0x809C2506, 0x933EBD71, 0xA7D915E8, 0xB47B8D9F, 0xCE1644DA, 0xDDB4DCAD, 0xE9537434, 0xFAF1EC43, 314188605Srrs 0x1D88E6BE, 0x0E2A7EC9, 0x3ACDD650, 0x296F4E27, 0x53028762, 0x40A01F15, 0x7447B78C, 0x67E52FFB, 315188605Srrs 0xBF59D487, 0xACFB4CF0, 0x981CE469, 0x8BBE7C1E, 0xF1D3B55B, 0xE2712D2C, 0xD69685B5, 0xC5341DC2, 316188605Srrs 0x224D173F, 0x31EF8F48, 0x050827D1, 0x16AABFA6, 0x6CC776E3, 0x7F65EE94, 0x4B82460D, 0x5820DE7A, 317188605Srrs 0xFBC3FAF9, 0xE861628E, 0xDC86CA17, 0xCF245260, 0xB5499B25, 0xA6EB0352, 0x920CABCB, 0x81AE33BC, 318188605Srrs 0x66D73941, 0x7575A136, 0x419209AF, 0x523091D8, 0x285D589D, 0x3BFFC0EA, 0x0F186873, 0x1CBAF004, 319188605Srrs 0xC4060B78, 0xD7A4930F, 0xE3433B96, 0xF0E1A3E1, 0x8A8C6AA4, 0x992EF2D3, 0xADC95A4A, 0xBE6BC23D, 320188605Srrs 0x5912C8C0, 0x4AB050B7, 0x7E57F82E, 0x6DF56059, 0x1798A91C, 0x043A316B, 0x30DD99F2, 0x237F0185, 321188605Srrs 0x844819FB, 0x97EA818C, 0xA30D2915, 0xB0AFB162, 0xCAC27827, 0xD960E050, 0xED8748C9, 0xFE25D0BE, 322188605Srrs 0x195CDA43, 0x0AFE4234, 0x3E19EAAD, 0x2DBB72DA, 0x57D6BB9F, 0x447423E8, 0x70938B71, 0x63311306, 323188605Srrs 0xBB8DE87A, 0xA82F700D, 0x9CC8D894, 0x8F6A40E3, 0xF50789A6, 0xE6A511D1, 0xD242B948, 0xC1E0213F, 324188605Srrs 0x26992BC2, 0x353BB3B5, 0x01DC1B2C, 0x127E835B, 0x68134A1E, 0x7BB1D269, 0x4F567AF0, 0x5CF4E287, 325188605Srrs 0x04D43CFD, 0x1776A48A, 0x23910C13, 0x30339464, 0x4A5E5D21, 0x59FCC556, 0x6D1B6DCF, 0x7EB9F5B8, 326188605Srrs 0x99C0FF45, 0x8A626732, 0xBE85CFAB, 0xAD2757DC, 0xD74A9E99, 0xC4E806EE, 0xF00FAE77, 0xE3AD3600, 327188605Srrs 0x3B11CD7C, 0x28B3550B, 0x1C54FD92, 0x0FF665E5, 0x759BACA0, 0x663934D7, 0x52DE9C4E, 0x417C0439, 328188605Srrs 0xA6050EC4, 0xB5A796B3, 0x81403E2A, 0x92E2A65D, 0xE88F6F18, 0xFB2DF76F, 0xCFCA5FF6, 0xDC68C781, 329188605Srrs 0x7B5FDFFF, 0x68FD4788, 0x5C1AEF11, 0x4FB87766, 0x35D5BE23, 0x26772654, 0x12908ECD, 0x013216BA, 330188605Srrs 0xE64B1C47, 0xF5E98430, 0xC10E2CA9, 0xD2ACB4DE, 0xA8C17D9B, 0xBB63E5EC, 0x8F844D75, 0x9C26D502, 331188605Srrs 0x449A2E7E, 0x5738B609, 0x63DF1E90, 0x707D86E7, 0x0A104FA2, 0x19B2D7D5, 0x2D557F4C, 0x3EF7E73B, 332188605Srrs 0xD98EEDC6, 0xCA2C75B1, 0xFECBDD28, 0xED69455F, 0x97048C1A, 0x84A6146D, 0xB041BCF4, 0xA3E32483 333188605Srrs}; 334188605Srrs 335188605Srrs/* 336188605Srrs * end of the CRC lookup table crc_tableil8_o40 337188605Srrs */ 338188605Srrs 339188605Srrs 340188605Srrs 341188605Srrs/* 342188605Srrs * The following CRC lookup table was generated automagically using the 343188605Srrs * following model parameters: 344188605Srrs * 345188605Srrs * Generator Polynomial = ................. 0x1EDC6F41 346188605Srrs * Generator Polynomial Length = .......... 32 bits 347188605Srrs * Reflected Bits = ....................... TRUE 348188605Srrs * Table Generation Offset = .............. 32 bits 349188605Srrs * Number of Slices = ..................... 8 slices 350188605Srrs * Slice Lengths = ........................ 8 8 8 8 8 8 8 8 351188605Srrs * Directory Name = ....................... .\ 352188605Srrs * File Name = ............................ 8x256_tables.c 353188605Srrs */ 354188605Srrs 355233517Smariusstatic const uint32_t sctp_crc_tableil8_o48[256] = 356188605Srrs{ 357188605Srrs 0x00000000, 0xA541927E, 0x4F6F520D, 0xEA2EC073, 0x9EDEA41A, 0x3B9F3664, 0xD1B1F617, 0x74F06469, 358188605Srrs 0x38513EC5, 0x9D10ACBB, 0x773E6CC8, 0xD27FFEB6, 0xA68F9ADF, 0x03CE08A1, 0xE9E0C8D2, 0x4CA15AAC, 359188605Srrs 0x70A27D8A, 0xD5E3EFF4, 0x3FCD2F87, 0x9A8CBDF9, 0xEE7CD990, 0x4B3D4BEE, 0xA1138B9D, 0x045219E3, 360188605Srrs 0x48F3434F, 0xEDB2D131, 0x079C1142, 0xA2DD833C, 0xD62DE755, 0x736C752B, 0x9942B558, 0x3C032726, 361188605Srrs 0xE144FB14, 0x4405696A, 0xAE2BA919, 0x0B6A3B67, 0x7F9A5F0E, 0xDADBCD70, 0x30F50D03, 0x95B49F7D, 362188605Srrs 0xD915C5D1, 0x7C5457AF, 0x967A97DC, 0x333B05A2, 0x47CB61CB, 0xE28AF3B5, 0x08A433C6, 0xADE5A1B8, 363188605Srrs 0x91E6869E, 0x34A714E0, 0xDE89D493, 0x7BC846ED, 0x0F382284, 0xAA79B0FA, 0x40577089, 0xE516E2F7, 364188605Srrs 0xA9B7B85B, 0x0CF62A25, 0xE6D8EA56, 0x43997828, 0x37691C41, 0x92288E3F, 0x78064E4C, 0xDD47DC32, 365188605Srrs 0xC76580D9, 0x622412A7, 0x880AD2D4, 0x2D4B40AA, 0x59BB24C3, 0xFCFAB6BD, 0x16D476CE, 0xB395E4B0, 366188605Srrs 0xFF34BE1C, 0x5A752C62, 0xB05BEC11, 0x151A7E6F, 0x61EA1A06, 0xC4AB8878, 0x2E85480B, 0x8BC4DA75, 367188605Srrs 0xB7C7FD53, 0x12866F2D, 0xF8A8AF5E, 0x5DE93D20, 0x29195949, 0x8C58CB37, 0x66760B44, 0xC337993A, 368188605Srrs 0x8F96C396, 0x2AD751E8, 0xC0F9919B, 0x65B803E5, 0x1148678C, 0xB409F5F2, 0x5E273581, 0xFB66A7FF, 369188605Srrs 0x26217BCD, 0x8360E9B3, 0x694E29C0, 0xCC0FBBBE, 0xB8FFDFD7, 0x1DBE4DA9, 0xF7908DDA, 0x52D11FA4, 370188605Srrs 0x1E704508, 0xBB31D776, 0x511F1705, 0xF45E857B, 0x80AEE112, 0x25EF736C, 0xCFC1B31F, 0x6A802161, 371188605Srrs 0x56830647, 0xF3C29439, 0x19EC544A, 0xBCADC634, 0xC85DA25D, 0x6D1C3023, 0x8732F050, 0x2273622E, 372188605Srrs 0x6ED23882, 0xCB93AAFC, 0x21BD6A8F, 0x84FCF8F1, 0xF00C9C98, 0x554D0EE6, 0xBF63CE95, 0x1A225CEB, 373188605Srrs 0x8B277743, 0x2E66E53D, 0xC448254E, 0x6109B730, 0x15F9D359, 0xB0B84127, 0x5A968154, 0xFFD7132A, 374188605Srrs 0xB3764986, 0x1637DBF8, 0xFC191B8B, 0x595889F5, 0x2DA8ED9C, 0x88E97FE2, 0x62C7BF91, 0xC7862DEF, 375188605Srrs 0xFB850AC9, 0x5EC498B7, 0xB4EA58C4, 0x11ABCABA, 0x655BAED3, 0xC01A3CAD, 0x2A34FCDE, 0x8F756EA0, 376188605Srrs 0xC3D4340C, 0x6695A672, 0x8CBB6601, 0x29FAF47F, 0x5D0A9016, 0xF84B0268, 0x1265C21B, 0xB7245065, 377188605Srrs 0x6A638C57, 0xCF221E29, 0x250CDE5A, 0x804D4C24, 0xF4BD284D, 0x51FCBA33, 0xBBD27A40, 0x1E93E83E, 378188605Srrs 0x5232B292, 0xF77320EC, 0x1D5DE09F, 0xB81C72E1, 0xCCEC1688, 0x69AD84F6, 0x83834485, 0x26C2D6FB, 379188605Srrs 0x1AC1F1DD, 0xBF8063A3, 0x55AEA3D0, 0xF0EF31AE, 0x841F55C7, 0x215EC7B9, 0xCB7007CA, 0x6E3195B4, 380188605Srrs 0x2290CF18, 0x87D15D66, 0x6DFF9D15, 0xC8BE0F6B, 0xBC4E6B02, 0x190FF97C, 0xF321390F, 0x5660AB71, 381188605Srrs 0x4C42F79A, 0xE90365E4, 0x032DA597, 0xA66C37E9, 0xD29C5380, 0x77DDC1FE, 0x9DF3018D, 0x38B293F3, 382188605Srrs 0x7413C95F, 0xD1525B21, 0x3B7C9B52, 0x9E3D092C, 0xEACD6D45, 0x4F8CFF3B, 0xA5A23F48, 0x00E3AD36, 383188605Srrs 0x3CE08A10, 0x99A1186E, 0x738FD81D, 0xD6CE4A63, 0xA23E2E0A, 0x077FBC74, 0xED517C07, 0x4810EE79, 384188605Srrs 0x04B1B4D5, 0xA1F026AB, 0x4BDEE6D8, 0xEE9F74A6, 0x9A6F10CF, 0x3F2E82B1, 0xD50042C2, 0x7041D0BC, 385188605Srrs 0xAD060C8E, 0x08479EF0, 0xE2695E83, 0x4728CCFD, 0x33D8A894, 0x96993AEA, 0x7CB7FA99, 0xD9F668E7, 386188605Srrs 0x9557324B, 0x3016A035, 0xDA386046, 0x7F79F238, 0x0B899651, 0xAEC8042F, 0x44E6C45C, 0xE1A75622, 387188605Srrs 0xDDA47104, 0x78E5E37A, 0x92CB2309, 0x378AB177, 0x437AD51E, 0xE63B4760, 0x0C158713, 0xA954156D, 388188605Srrs 0xE5F54FC1, 0x40B4DDBF, 0xAA9A1DCC, 0x0FDB8FB2, 0x7B2BEBDB, 0xDE6A79A5, 0x3444B9D6, 0x91052BA8 389188605Srrs}; 390188605Srrs 391188605Srrs/* 392188605Srrs * end of the CRC lookup table crc_tableil8_o48 393188605Srrs */ 394188605Srrs 395188605Srrs 396188605Srrs 397188605Srrs/* 398188605Srrs * The following CRC lookup table was generated automagically using the 399188605Srrs * following model parameters: 400188605Srrs * 401188605Srrs * Generator Polynomial = ................. 0x1EDC6F41 402188605Srrs * Generator Polynomial Length = .......... 32 bits 403188605Srrs * Reflected Bits = ....................... TRUE 404188605Srrs * Table Generation Offset = .............. 32 bits 405188605Srrs * Number of Slices = ..................... 8 slices 406188605Srrs * Slice Lengths = ........................ 8 8 8 8 8 8 8 8 407188605Srrs * Directory Name = ....................... .\ 408188605Srrs * File Name = ............................ 8x256_tables.c 409188605Srrs */ 410188605Srrs 411233517Smariusstatic const uint32_t sctp_crc_tableil8_o56[256] = 412188605Srrs{ 413188605Srrs 0x00000000, 0xDD45AAB8, 0xBF672381, 0x62228939, 0x7B2231F3, 0xA6679B4B, 0xC4451272, 0x1900B8CA, 414188605Srrs 0xF64463E6, 0x2B01C95E, 0x49234067, 0x9466EADF, 0x8D665215, 0x5023F8AD, 0x32017194, 0xEF44DB2C, 415188605Srrs 0xE964B13D, 0x34211B85, 0x560392BC, 0x8B463804, 0x924680CE, 0x4F032A76, 0x2D21A34F, 0xF06409F7, 416188605Srrs 0x1F20D2DB, 0xC2657863, 0xA047F15A, 0x7D025BE2, 0x6402E328, 0xB9474990, 0xDB65C0A9, 0x06206A11, 417188605Srrs 0xD725148B, 0x0A60BE33, 0x6842370A, 0xB5079DB2, 0xAC072578, 0x71428FC0, 0x136006F9, 0xCE25AC41, 418188605Srrs 0x2161776D, 0xFC24DDD5, 0x9E0654EC, 0x4343FE54, 0x5A43469E, 0x8706EC26, 0xE524651F, 0x3861CFA7, 419188605Srrs 0x3E41A5B6, 0xE3040F0E, 0x81268637, 0x5C632C8F, 0x45639445, 0x98263EFD, 0xFA04B7C4, 0x27411D7C, 420188605Srrs 0xC805C650, 0x15406CE8, 0x7762E5D1, 0xAA274F69, 0xB327F7A3, 0x6E625D1B, 0x0C40D422, 0xD1057E9A, 421188605Srrs 0xABA65FE7, 0x76E3F55F, 0x14C17C66, 0xC984D6DE, 0xD0846E14, 0x0DC1C4AC, 0x6FE34D95, 0xB2A6E72D, 422188605Srrs 0x5DE23C01, 0x80A796B9, 0xE2851F80, 0x3FC0B538, 0x26C00DF2, 0xFB85A74A, 0x99A72E73, 0x44E284CB, 423188605Srrs 0x42C2EEDA, 0x9F874462, 0xFDA5CD5B, 0x20E067E3, 0x39E0DF29, 0xE4A57591, 0x8687FCA8, 0x5BC25610, 424188605Srrs 0xB4868D3C, 0x69C32784, 0x0BE1AEBD, 0xD6A40405, 0xCFA4BCCF, 0x12E11677, 0x70C39F4E, 0xAD8635F6, 425188605Srrs 0x7C834B6C, 0xA1C6E1D4, 0xC3E468ED, 0x1EA1C255, 0x07A17A9F, 0xDAE4D027, 0xB8C6591E, 0x6583F3A6, 426188605Srrs 0x8AC7288A, 0x57828232, 0x35A00B0B, 0xE8E5A1B3, 0xF1E51979, 0x2CA0B3C1, 0x4E823AF8, 0x93C79040, 427188605Srrs 0x95E7FA51, 0x48A250E9, 0x2A80D9D0, 0xF7C57368, 0xEEC5CBA2, 0x3380611A, 0x51A2E823, 0x8CE7429B, 428188605Srrs 0x63A399B7, 0xBEE6330F, 0xDCC4BA36, 0x0181108E, 0x1881A844, 0xC5C402FC, 0xA7E68BC5, 0x7AA3217D, 429188605Srrs 0x52A0C93F, 0x8FE56387, 0xEDC7EABE, 0x30824006, 0x2982F8CC, 0xF4C75274, 0x96E5DB4D, 0x4BA071F5, 430188605Srrs 0xA4E4AAD9, 0x79A10061, 0x1B838958, 0xC6C623E0, 0xDFC69B2A, 0x02833192, 0x60A1B8AB, 0xBDE41213, 431188605Srrs 0xBBC47802, 0x6681D2BA, 0x04A35B83, 0xD9E6F13B, 0xC0E649F1, 0x1DA3E349, 0x7F816A70, 0xA2C4C0C8, 432188605Srrs 0x4D801BE4, 0x90C5B15C, 0xF2E73865, 0x2FA292DD, 0x36A22A17, 0xEBE780AF, 0x89C50996, 0x5480A32E, 433188605Srrs 0x8585DDB4, 0x58C0770C, 0x3AE2FE35, 0xE7A7548D, 0xFEA7EC47, 0x23E246FF, 0x41C0CFC6, 0x9C85657E, 434188605Srrs 0x73C1BE52, 0xAE8414EA, 0xCCA69DD3, 0x11E3376B, 0x08E38FA1, 0xD5A62519, 0xB784AC20, 0x6AC10698, 435188605Srrs 0x6CE16C89, 0xB1A4C631, 0xD3864F08, 0x0EC3E5B0, 0x17C35D7A, 0xCA86F7C2, 0xA8A47EFB, 0x75E1D443, 436188605Srrs 0x9AA50F6F, 0x47E0A5D7, 0x25C22CEE, 0xF8878656, 0xE1873E9C, 0x3CC29424, 0x5EE01D1D, 0x83A5B7A5, 437188605Srrs 0xF90696D8, 0x24433C60, 0x4661B559, 0x9B241FE1, 0x8224A72B, 0x5F610D93, 0x3D4384AA, 0xE0062E12, 438188605Srrs 0x0F42F53E, 0xD2075F86, 0xB025D6BF, 0x6D607C07, 0x7460C4CD, 0xA9256E75, 0xCB07E74C, 0x16424DF4, 439188605Srrs 0x106227E5, 0xCD278D5D, 0xAF050464, 0x7240AEDC, 0x6B401616, 0xB605BCAE, 0xD4273597, 0x09629F2F, 440188605Srrs 0xE6264403, 0x3B63EEBB, 0x59416782, 0x8404CD3A, 0x9D0475F0, 0x4041DF48, 0x22635671, 0xFF26FCC9, 441188605Srrs 0x2E238253, 0xF36628EB, 0x9144A1D2, 0x4C010B6A, 0x5501B3A0, 0x88441918, 0xEA669021, 0x37233A99, 442188605Srrs 0xD867E1B5, 0x05224B0D, 0x6700C234, 0xBA45688C, 0xA345D046, 0x7E007AFE, 0x1C22F3C7, 0xC167597F, 443188605Srrs 0xC747336E, 0x1A0299D6, 0x782010EF, 0xA565BA57, 0xBC65029D, 0x6120A825, 0x0302211C, 0xDE478BA4, 444188605Srrs 0x31035088, 0xEC46FA30, 0x8E647309, 0x5321D9B1, 0x4A21617B, 0x9764CBC3, 0xF54642FA, 0x2803E842 445188605Srrs}; 446188605Srrs 447188605Srrs/* 448188605Srrs * end of the CRC lookup table crc_tableil8_o56 449188605Srrs */ 450188605Srrs 451188605Srrs 452188605Srrs 453188605Srrs/* 454188605Srrs * The following CRC lookup table was generated automagically using the 455188605Srrs * following model parameters: 456188605Srrs * 457188605Srrs * Generator Polynomial = ................. 0x1EDC6F41 458188605Srrs * Generator Polynomial Length = .......... 32 bits 459188605Srrs * Reflected Bits = ....................... TRUE 460188605Srrs * Table Generation Offset = .............. 32 bits 461188605Srrs * Number of Slices = ..................... 8 slices 462188605Srrs * Slice Lengths = ........................ 8 8 8 8 8 8 8 8 463188605Srrs * Directory Name = ....................... .\ 464188605Srrs * File Name = ............................ 8x256_tables.c 465188605Srrs */ 466188605Srrs 467233517Smariusstatic const uint32_t sctp_crc_tableil8_o64[256] = 468188605Srrs{ 469188605Srrs 0x00000000, 0x38116FAC, 0x7022DF58, 0x4833B0F4, 0xE045BEB0, 0xD854D11C, 0x906761E8, 0xA8760E44, 470188605Srrs 0xC5670B91, 0xFD76643D, 0xB545D4C9, 0x8D54BB65, 0x2522B521, 0x1D33DA8D, 0x55006A79, 0x6D1105D5, 471188605Srrs 0x8F2261D3, 0xB7330E7F, 0xFF00BE8B, 0xC711D127, 0x6F67DF63, 0x5776B0CF, 0x1F45003B, 0x27546F97, 472188605Srrs 0x4A456A42, 0x725405EE, 0x3A67B51A, 0x0276DAB6, 0xAA00D4F2, 0x9211BB5E, 0xDA220BAA, 0xE2336406, 473188605Srrs 0x1BA8B557, 0x23B9DAFB, 0x6B8A6A0F, 0x539B05A3, 0xFBED0BE7, 0xC3FC644B, 0x8BCFD4BF, 0xB3DEBB13, 474188605Srrs 0xDECFBEC6, 0xE6DED16A, 0xAEED619E, 0x96FC0E32, 0x3E8A0076, 0x069B6FDA, 0x4EA8DF2E, 0x76B9B082, 475188605Srrs 0x948AD484, 0xAC9BBB28, 0xE4A80BDC, 0xDCB96470, 0x74CF6A34, 0x4CDE0598, 0x04EDB56C, 0x3CFCDAC0, 476188605Srrs 0x51EDDF15, 0x69FCB0B9, 0x21CF004D, 0x19DE6FE1, 0xB1A861A5, 0x89B90E09, 0xC18ABEFD, 0xF99BD151, 477188605Srrs 0x37516AAE, 0x0F400502, 0x4773B5F6, 0x7F62DA5A, 0xD714D41E, 0xEF05BBB2, 0xA7360B46, 0x9F2764EA, 478188605Srrs 0xF236613F, 0xCA270E93, 0x8214BE67, 0xBA05D1CB, 0x1273DF8F, 0x2A62B023, 0x625100D7, 0x5A406F7B, 479188605Srrs 0xB8730B7D, 0x806264D1, 0xC851D425, 0xF040BB89, 0x5836B5CD, 0x6027DA61, 0x28146A95, 0x10050539, 480188605Srrs 0x7D1400EC, 0x45056F40, 0x0D36DFB4, 0x3527B018, 0x9D51BE5C, 0xA540D1F0, 0xED736104, 0xD5620EA8, 481188605Srrs 0x2CF9DFF9, 0x14E8B055, 0x5CDB00A1, 0x64CA6F0D, 0xCCBC6149, 0xF4AD0EE5, 0xBC9EBE11, 0x848FD1BD, 482188605Srrs 0xE99ED468, 0xD18FBBC4, 0x99BC0B30, 0xA1AD649C, 0x09DB6AD8, 0x31CA0574, 0x79F9B580, 0x41E8DA2C, 483188605Srrs 0xA3DBBE2A, 0x9BCAD186, 0xD3F96172, 0xEBE80EDE, 0x439E009A, 0x7B8F6F36, 0x33BCDFC2, 0x0BADB06E, 484188605Srrs 0x66BCB5BB, 0x5EADDA17, 0x169E6AE3, 0x2E8F054F, 0x86F90B0B, 0xBEE864A7, 0xF6DBD453, 0xCECABBFF, 485188605Srrs 0x6EA2D55C, 0x56B3BAF0, 0x1E800A04, 0x269165A8, 0x8EE76BEC, 0xB6F60440, 0xFEC5B4B4, 0xC6D4DB18, 486188605Srrs 0xABC5DECD, 0x93D4B161, 0xDBE70195, 0xE3F66E39, 0x4B80607D, 0x73910FD1, 0x3BA2BF25, 0x03B3D089, 487188605Srrs 0xE180B48F, 0xD991DB23, 0x91A26BD7, 0xA9B3047B, 0x01C50A3F, 0x39D46593, 0x71E7D567, 0x49F6BACB, 488188605Srrs 0x24E7BF1E, 0x1CF6D0B2, 0x54C56046, 0x6CD40FEA, 0xC4A201AE, 0xFCB36E02, 0xB480DEF6, 0x8C91B15A, 489188605Srrs 0x750A600B, 0x4D1B0FA7, 0x0528BF53, 0x3D39D0FF, 0x954FDEBB, 0xAD5EB117, 0xE56D01E3, 0xDD7C6E4F, 490188605Srrs 0xB06D6B9A, 0x887C0436, 0xC04FB4C2, 0xF85EDB6E, 0x5028D52A, 0x6839BA86, 0x200A0A72, 0x181B65DE, 491188605Srrs 0xFA2801D8, 0xC2396E74, 0x8A0ADE80, 0xB21BB12C, 0x1A6DBF68, 0x227CD0C4, 0x6A4F6030, 0x525E0F9C, 492188605Srrs 0x3F4F0A49, 0x075E65E5, 0x4F6DD511, 0x777CBABD, 0xDF0AB4F9, 0xE71BDB55, 0xAF286BA1, 0x9739040D, 493188605Srrs 0x59F3BFF2, 0x61E2D05E, 0x29D160AA, 0x11C00F06, 0xB9B60142, 0x81A76EEE, 0xC994DE1A, 0xF185B1B6, 494188605Srrs 0x9C94B463, 0xA485DBCF, 0xECB66B3B, 0xD4A70497, 0x7CD10AD3, 0x44C0657F, 0x0CF3D58B, 0x34E2BA27, 495188605Srrs 0xD6D1DE21, 0xEEC0B18D, 0xA6F30179, 0x9EE26ED5, 0x36946091, 0x0E850F3D, 0x46B6BFC9, 0x7EA7D065, 496188605Srrs 0x13B6D5B0, 0x2BA7BA1C, 0x63940AE8, 0x5B856544, 0xF3F36B00, 0xCBE204AC, 0x83D1B458, 0xBBC0DBF4, 497188605Srrs 0x425B0AA5, 0x7A4A6509, 0x3279D5FD, 0x0A68BA51, 0xA21EB415, 0x9A0FDBB9, 0xD23C6B4D, 0xEA2D04E1, 498188605Srrs 0x873C0134, 0xBF2D6E98, 0xF71EDE6C, 0xCF0FB1C0, 0x6779BF84, 0x5F68D028, 0x175B60DC, 0x2F4A0F70, 499188605Srrs 0xCD796B76, 0xF56804DA, 0xBD5BB42E, 0x854ADB82, 0x2D3CD5C6, 0x152DBA6A, 0x5D1E0A9E, 0x650F6532, 500188605Srrs 0x081E60E7, 0x300F0F4B, 0x783CBFBF, 0x402DD013, 0xE85BDE57, 0xD04AB1FB, 0x9879010F, 0xA0686EA3 501188605Srrs}; 502188605Srrs 503188605Srrs/* 504188605Srrs * end of the CRC lookup table crc_tableil8_o64 505188605Srrs */ 506188605Srrs 507188605Srrs 508188605Srrs 509188605Srrs/* 510188605Srrs * The following CRC lookup table was generated automagically using the 511188605Srrs * following model parameters: 512188605Srrs * 513188605Srrs * Generator Polynomial = ................. 0x1EDC6F41 514188605Srrs * Generator Polynomial Length = .......... 32 bits 515188605Srrs * Reflected Bits = ....................... TRUE 516188605Srrs * Table Generation Offset = .............. 32 bits 517188605Srrs * Number of Slices = ..................... 8 slices 518188605Srrs * Slice Lengths = ........................ 8 8 8 8 8 8 8 8 519188605Srrs * Directory Name = ....................... .\ 520188605Srrs * File Name = ............................ 8x256_tables.c 521188605Srrs */ 522188605Srrs 523233517Smariusstatic const uint32_t sctp_crc_tableil8_o72[256] = 524188605Srrs{ 525188605Srrs 0x00000000, 0xEF306B19, 0xDB8CA0C3, 0x34BCCBDA, 0xB2F53777, 0x5DC55C6E, 0x697997B4, 0x8649FCAD, 526188605Srrs 0x6006181F, 0x8F367306, 0xBB8AB8DC, 0x54BAD3C5, 0xD2F32F68, 0x3DC34471, 0x097F8FAB, 0xE64FE4B2, 527188605Srrs 0xC00C303E, 0x2F3C5B27, 0x1B8090FD, 0xF4B0FBE4, 0x72F90749, 0x9DC96C50, 0xA975A78A, 0x4645CC93, 528188605Srrs 0xA00A2821, 0x4F3A4338, 0x7B8688E2, 0x94B6E3FB, 0x12FF1F56, 0xFDCF744F, 0xC973BF95, 0x2643D48C, 529188605Srrs 0x85F4168D, 0x6AC47D94, 0x5E78B64E, 0xB148DD57, 0x370121FA, 0xD8314AE3, 0xEC8D8139, 0x03BDEA20, 530188605Srrs 0xE5F20E92, 0x0AC2658B, 0x3E7EAE51, 0xD14EC548, 0x570739E5, 0xB83752FC, 0x8C8B9926, 0x63BBF23F, 531188605Srrs 0x45F826B3, 0xAAC84DAA, 0x9E748670, 0x7144ED69, 0xF70D11C4, 0x183D7ADD, 0x2C81B107, 0xC3B1DA1E, 532188605Srrs 0x25FE3EAC, 0xCACE55B5, 0xFE729E6F, 0x1142F576, 0x970B09DB, 0x783B62C2, 0x4C87A918, 0xA3B7C201, 533188605Srrs 0x0E045BEB, 0xE13430F2, 0xD588FB28, 0x3AB89031, 0xBCF16C9C, 0x53C10785, 0x677DCC5F, 0x884DA746, 534188605Srrs 0x6E0243F4, 0x813228ED, 0xB58EE337, 0x5ABE882E, 0xDCF77483, 0x33C71F9A, 0x077BD440, 0xE84BBF59, 535188605Srrs 0xCE086BD5, 0x213800CC, 0x1584CB16, 0xFAB4A00F, 0x7CFD5CA2, 0x93CD37BB, 0xA771FC61, 0x48419778, 536188605Srrs 0xAE0E73CA, 0x413E18D3, 0x7582D309, 0x9AB2B810, 0x1CFB44BD, 0xF3CB2FA4, 0xC777E47E, 0x28478F67, 537188605Srrs 0x8BF04D66, 0x64C0267F, 0x507CEDA5, 0xBF4C86BC, 0x39057A11, 0xD6351108, 0xE289DAD2, 0x0DB9B1CB, 538188605Srrs 0xEBF65579, 0x04C63E60, 0x307AF5BA, 0xDF4A9EA3, 0x5903620E, 0xB6330917, 0x828FC2CD, 0x6DBFA9D4, 539188605Srrs 0x4BFC7D58, 0xA4CC1641, 0x9070DD9B, 0x7F40B682, 0xF9094A2F, 0x16392136, 0x2285EAEC, 0xCDB581F5, 540188605Srrs 0x2BFA6547, 0xC4CA0E5E, 0xF076C584, 0x1F46AE9D, 0x990F5230, 0x763F3929, 0x4283F2F3, 0xADB399EA, 541188605Srrs 0x1C08B7D6, 0xF338DCCF, 0xC7841715, 0x28B47C0C, 0xAEFD80A1, 0x41CDEBB8, 0x75712062, 0x9A414B7B, 542188605Srrs 0x7C0EAFC9, 0x933EC4D0, 0xA7820F0A, 0x48B26413, 0xCEFB98BE, 0x21CBF3A7, 0x1577387D, 0xFA475364, 543188605Srrs 0xDC0487E8, 0x3334ECF1, 0x0788272B, 0xE8B84C32, 0x6EF1B09F, 0x81C1DB86, 0xB57D105C, 0x5A4D7B45, 544188605Srrs 0xBC029FF7, 0x5332F4EE, 0x678E3F34, 0x88BE542D, 0x0EF7A880, 0xE1C7C399, 0xD57B0843, 0x3A4B635A, 545188605Srrs 0x99FCA15B, 0x76CCCA42, 0x42700198, 0xAD406A81, 0x2B09962C, 0xC439FD35, 0xF08536EF, 0x1FB55DF6, 546188605Srrs 0xF9FAB944, 0x16CAD25D, 0x22761987, 0xCD46729E, 0x4B0F8E33, 0xA43FE52A, 0x90832EF0, 0x7FB345E9, 547188605Srrs 0x59F09165, 0xB6C0FA7C, 0x827C31A6, 0x6D4C5ABF, 0xEB05A612, 0x0435CD0B, 0x308906D1, 0xDFB96DC8, 548188605Srrs 0x39F6897A, 0xD6C6E263, 0xE27A29B9, 0x0D4A42A0, 0x8B03BE0D, 0x6433D514, 0x508F1ECE, 0xBFBF75D7, 549188605Srrs 0x120CEC3D, 0xFD3C8724, 0xC9804CFE, 0x26B027E7, 0xA0F9DB4A, 0x4FC9B053, 0x7B757B89, 0x94451090, 550188605Srrs 0x720AF422, 0x9D3A9F3B, 0xA98654E1, 0x46B63FF8, 0xC0FFC355, 0x2FCFA84C, 0x1B736396, 0xF443088F, 551188605Srrs 0xD200DC03, 0x3D30B71A, 0x098C7CC0, 0xE6BC17D9, 0x60F5EB74, 0x8FC5806D, 0xBB794BB7, 0x544920AE, 552188605Srrs 0xB206C41C, 0x5D36AF05, 0x698A64DF, 0x86BA0FC6, 0x00F3F36B, 0xEFC39872, 0xDB7F53A8, 0x344F38B1, 553188605Srrs 0x97F8FAB0, 0x78C891A9, 0x4C745A73, 0xA344316A, 0x250DCDC7, 0xCA3DA6DE, 0xFE816D04, 0x11B1061D, 554188605Srrs 0xF7FEE2AF, 0x18CE89B6, 0x2C72426C, 0xC3422975, 0x450BD5D8, 0xAA3BBEC1, 0x9E87751B, 0x71B71E02, 555188605Srrs 0x57F4CA8E, 0xB8C4A197, 0x8C786A4D, 0x63480154, 0xE501FDF9, 0x0A3196E0, 0x3E8D5D3A, 0xD1BD3623, 556188605Srrs 0x37F2D291, 0xD8C2B988, 0xEC7E7252, 0x034E194B, 0x8507E5E6, 0x6A378EFF, 0x5E8B4525, 0xB1BB2E3C 557188605Srrs}; 558188605Srrs 559188605Srrs/* 560188605Srrs * end of the CRC lookup table crc_tableil8_o72 561188605Srrs */ 562188605Srrs 563188605Srrs 564188605Srrs 565188605Srrs/* 566188605Srrs * The following CRC lookup table was generated automagically using the 567188605Srrs * following model parameters: 568188605Srrs * 569188605Srrs * Generator Polynomial = ................. 0x1EDC6F41 570188605Srrs * Generator Polynomial Length = .......... 32 bits 571188605Srrs * Reflected Bits = ....................... TRUE 572188605Srrs * Table Generation Offset = .............. 32 bits 573188605Srrs * Number of Slices = ..................... 8 slices 574188605Srrs * Slice Lengths = ........................ 8 8 8 8 8 8 8 8 575188605Srrs * Directory Name = ....................... .\ 576188605Srrs * File Name = ............................ 8x256_tables.c 577188605Srrs */ 578188605Srrs 579233517Smariusstatic const uint32_t sctp_crc_tableil8_o80[256] = 580188605Srrs{ 581188605Srrs 0x00000000, 0x68032CC8, 0xD0065990, 0xB8057558, 0xA5E0C5D1, 0xCDE3E919, 0x75E69C41, 0x1DE5B089, 582188605Srrs 0x4E2DFD53, 0x262ED19B, 0x9E2BA4C3, 0xF628880B, 0xEBCD3882, 0x83CE144A, 0x3BCB6112, 0x53C84DDA, 583188605Srrs 0x9C5BFAA6, 0xF458D66E, 0x4C5DA336, 0x245E8FFE, 0x39BB3F77, 0x51B813BF, 0xE9BD66E7, 0x81BE4A2F, 584188605Srrs 0xD27607F5, 0xBA752B3D, 0x02705E65, 0x6A7372AD, 0x7796C224, 0x1F95EEEC, 0xA7909BB4, 0xCF93B77C, 585188605Srrs 0x3D5B83BD, 0x5558AF75, 0xED5DDA2D, 0x855EF6E5, 0x98BB466C, 0xF0B86AA4, 0x48BD1FFC, 0x20BE3334, 586188605Srrs 0x73767EEE, 0x1B755226, 0xA370277E, 0xCB730BB6, 0xD696BB3F, 0xBE9597F7, 0x0690E2AF, 0x6E93CE67, 587188605Srrs 0xA100791B, 0xC90355D3, 0x7106208B, 0x19050C43, 0x04E0BCCA, 0x6CE39002, 0xD4E6E55A, 0xBCE5C992, 588188605Srrs 0xEF2D8448, 0x872EA880, 0x3F2BDDD8, 0x5728F110, 0x4ACD4199, 0x22CE6D51, 0x9ACB1809, 0xF2C834C1, 589188605Srrs 0x7AB7077A, 0x12B42BB2, 0xAAB15EEA, 0xC2B27222, 0xDF57C2AB, 0xB754EE63, 0x0F519B3B, 0x6752B7F3, 590188605Srrs 0x349AFA29, 0x5C99D6E1, 0xE49CA3B9, 0x8C9F8F71, 0x917A3FF8, 0xF9791330, 0x417C6668, 0x297F4AA0, 591188605Srrs 0xE6ECFDDC, 0x8EEFD114, 0x36EAA44C, 0x5EE98884, 0x430C380D, 0x2B0F14C5, 0x930A619D, 0xFB094D55, 592188605Srrs 0xA8C1008F, 0xC0C22C47, 0x78C7591F, 0x10C475D7, 0x0D21C55E, 0x6522E996, 0xDD279CCE, 0xB524B006, 593188605Srrs 0x47EC84C7, 0x2FEFA80F, 0x97EADD57, 0xFFE9F19F, 0xE20C4116, 0x8A0F6DDE, 0x320A1886, 0x5A09344E, 594188605Srrs 0x09C17994, 0x61C2555C, 0xD9C72004, 0xB1C40CCC, 0xAC21BC45, 0xC422908D, 0x7C27E5D5, 0x1424C91D, 595188605Srrs 0xDBB77E61, 0xB3B452A9, 0x0BB127F1, 0x63B20B39, 0x7E57BBB0, 0x16549778, 0xAE51E220, 0xC652CEE8, 596188605Srrs 0x959A8332, 0xFD99AFFA, 0x459CDAA2, 0x2D9FF66A, 0x307A46E3, 0x58796A2B, 0xE07C1F73, 0x887F33BB, 597188605Srrs 0xF56E0EF4, 0x9D6D223C, 0x25685764, 0x4D6B7BAC, 0x508ECB25, 0x388DE7ED, 0x808892B5, 0xE88BBE7D, 598188605Srrs 0xBB43F3A7, 0xD340DF6F, 0x6B45AA37, 0x034686FF, 0x1EA33676, 0x76A01ABE, 0xCEA56FE6, 0xA6A6432E, 599188605Srrs 0x6935F452, 0x0136D89A, 0xB933ADC2, 0xD130810A, 0xCCD53183, 0xA4D61D4B, 0x1CD36813, 0x74D044DB, 600188605Srrs 0x27180901, 0x4F1B25C9, 0xF71E5091, 0x9F1D7C59, 0x82F8CCD0, 0xEAFBE018, 0x52FE9540, 0x3AFDB988, 601188605Srrs 0xC8358D49, 0xA036A181, 0x1833D4D9, 0x7030F811, 0x6DD54898, 0x05D66450, 0xBDD31108, 0xD5D03DC0, 602188605Srrs 0x8618701A, 0xEE1B5CD2, 0x561E298A, 0x3E1D0542, 0x23F8B5CB, 0x4BFB9903, 0xF3FEEC5B, 0x9BFDC093, 603188605Srrs 0x546E77EF, 0x3C6D5B27, 0x84682E7F, 0xEC6B02B7, 0xF18EB23E, 0x998D9EF6, 0x2188EBAE, 0x498BC766, 604188605Srrs 0x1A438ABC, 0x7240A674, 0xCA45D32C, 0xA246FFE4, 0xBFA34F6D, 0xD7A063A5, 0x6FA516FD, 0x07A63A35, 605188605Srrs 0x8FD9098E, 0xE7DA2546, 0x5FDF501E, 0x37DC7CD6, 0x2A39CC5F, 0x423AE097, 0xFA3F95CF, 0x923CB907, 606188605Srrs 0xC1F4F4DD, 0xA9F7D815, 0x11F2AD4D, 0x79F18185, 0x6414310C, 0x0C171DC4, 0xB412689C, 0xDC114454, 607188605Srrs 0x1382F328, 0x7B81DFE0, 0xC384AAB8, 0xAB878670, 0xB66236F9, 0xDE611A31, 0x66646F69, 0x0E6743A1, 608188605Srrs 0x5DAF0E7B, 0x35AC22B3, 0x8DA957EB, 0xE5AA7B23, 0xF84FCBAA, 0x904CE762, 0x2849923A, 0x404ABEF2, 609188605Srrs 0xB2828A33, 0xDA81A6FB, 0x6284D3A3, 0x0A87FF6B, 0x17624FE2, 0x7F61632A, 0xC7641672, 0xAF673ABA, 610188605Srrs 0xFCAF7760, 0x94AC5BA8, 0x2CA92EF0, 0x44AA0238, 0x594FB2B1, 0x314C9E79, 0x8949EB21, 0xE14AC7E9, 611188605Srrs 0x2ED97095, 0x46DA5C5D, 0xFEDF2905, 0x96DC05CD, 0x8B39B544, 0xE33A998C, 0x5B3FECD4, 0x333CC01C, 612188605Srrs 0x60F48DC6, 0x08F7A10E, 0xB0F2D456, 0xD8F1F89E, 0xC5144817, 0xAD1764DF, 0x15121187, 0x7D113D4F 613188605Srrs}; 614188605Srrs 615188605Srrs/* 616188605Srrs * end of the CRC lookup table crc_tableil8_o80 617188605Srrs */ 618188605Srrs 619188605Srrs 620188605Srrs 621188605Srrs/* 622188605Srrs * The following CRC lookup table was generated automagically using the 623188605Srrs * following model parameters: 624188605Srrs * 625188605Srrs * Generator Polynomial = ................. 0x1EDC6F41 626188605Srrs * Generator Polynomial Length = .......... 32 bits 627188605Srrs * Reflected Bits = ....................... TRUE 628188605Srrs * Table Generation Offset = .............. 32 bits 629188605Srrs * Number of Slices = ..................... 8 slices 630188605Srrs * Slice Lengths = ........................ 8 8 8 8 8 8 8 8 631188605Srrs * Directory Name = ....................... .\ 632188605Srrs * File Name = ............................ 8x256_tables.c 633188605Srrs */ 634188605Srrs 635233517Smariusstatic const uint32_t sctp_crc_tableil8_o88[256] = 636188605Srrs{ 637188605Srrs 0x00000000, 0x493C7D27, 0x9278FA4E, 0xDB448769, 0x211D826D, 0x6821FF4A, 0xB3657823, 0xFA590504, 638188605Srrs 0x423B04DA, 0x0B0779FD, 0xD043FE94, 0x997F83B3, 0x632686B7, 0x2A1AFB90, 0xF15E7CF9, 0xB86201DE, 639188605Srrs 0x847609B4, 0xCD4A7493, 0x160EF3FA, 0x5F328EDD, 0xA56B8BD9, 0xEC57F6FE, 0x37137197, 0x7E2F0CB0, 640188605Srrs 0xC64D0D6E, 0x8F717049, 0x5435F720, 0x1D098A07, 0xE7508F03, 0xAE6CF224, 0x7528754D, 0x3C14086A, 641188605Srrs 0x0D006599, 0x443C18BE, 0x9F789FD7, 0xD644E2F0, 0x2C1DE7F4, 0x65219AD3, 0xBE651DBA, 0xF759609D, 642188605Srrs 0x4F3B6143, 0x06071C64, 0xDD439B0D, 0x947FE62A, 0x6E26E32E, 0x271A9E09, 0xFC5E1960, 0xB5626447, 643188605Srrs 0x89766C2D, 0xC04A110A, 0x1B0E9663, 0x5232EB44, 0xA86BEE40, 0xE1579367, 0x3A13140E, 0x732F6929, 644188605Srrs 0xCB4D68F7, 0x827115D0, 0x593592B9, 0x1009EF9E, 0xEA50EA9A, 0xA36C97BD, 0x782810D4, 0x31146DF3, 645188605Srrs 0x1A00CB32, 0x533CB615, 0x8878317C, 0xC1444C5B, 0x3B1D495F, 0x72213478, 0xA965B311, 0xE059CE36, 646188605Srrs 0x583BCFE8, 0x1107B2CF, 0xCA4335A6, 0x837F4881, 0x79264D85, 0x301A30A2, 0xEB5EB7CB, 0xA262CAEC, 647188605Srrs 0x9E76C286, 0xD74ABFA1, 0x0C0E38C8, 0x453245EF, 0xBF6B40EB, 0xF6573DCC, 0x2D13BAA5, 0x642FC782, 648188605Srrs 0xDC4DC65C, 0x9571BB7B, 0x4E353C12, 0x07094135, 0xFD504431, 0xB46C3916, 0x6F28BE7F, 0x2614C358, 649188605Srrs 0x1700AEAB, 0x5E3CD38C, 0x857854E5, 0xCC4429C2, 0x361D2CC6, 0x7F2151E1, 0xA465D688, 0xED59ABAF, 650188605Srrs 0x553BAA71, 0x1C07D756, 0xC743503F, 0x8E7F2D18, 0x7426281C, 0x3D1A553B, 0xE65ED252, 0xAF62AF75, 651188605Srrs 0x9376A71F, 0xDA4ADA38, 0x010E5D51, 0x48322076, 0xB26B2572, 0xFB575855, 0x2013DF3C, 0x692FA21B, 652188605Srrs 0xD14DA3C5, 0x9871DEE2, 0x4335598B, 0x0A0924AC, 0xF05021A8, 0xB96C5C8F, 0x6228DBE6, 0x2B14A6C1, 653188605Srrs 0x34019664, 0x7D3DEB43, 0xA6796C2A, 0xEF45110D, 0x151C1409, 0x5C20692E, 0x8764EE47, 0xCE589360, 654188605Srrs 0x763A92BE, 0x3F06EF99, 0xE44268F0, 0xAD7E15D7, 0x572710D3, 0x1E1B6DF4, 0xC55FEA9D, 0x8C6397BA, 655188605Srrs 0xB0779FD0, 0xF94BE2F7, 0x220F659E, 0x6B3318B9, 0x916A1DBD, 0xD856609A, 0x0312E7F3, 0x4A2E9AD4, 656188605Srrs 0xF24C9B0A, 0xBB70E62D, 0x60346144, 0x29081C63, 0xD3511967, 0x9A6D6440, 0x4129E329, 0x08159E0E, 657188605Srrs 0x3901F3FD, 0x703D8EDA, 0xAB7909B3, 0xE2457494, 0x181C7190, 0x51200CB7, 0x8A648BDE, 0xC358F6F9, 658188605Srrs 0x7B3AF727, 0x32068A00, 0xE9420D69, 0xA07E704E, 0x5A27754A, 0x131B086D, 0xC85F8F04, 0x8163F223, 659188605Srrs 0xBD77FA49, 0xF44B876E, 0x2F0F0007, 0x66337D20, 0x9C6A7824, 0xD5560503, 0x0E12826A, 0x472EFF4D, 660188605Srrs 0xFF4CFE93, 0xB67083B4, 0x6D3404DD, 0x240879FA, 0xDE517CFE, 0x976D01D9, 0x4C2986B0, 0x0515FB97, 661188605Srrs 0x2E015D56, 0x673D2071, 0xBC79A718, 0xF545DA3F, 0x0F1CDF3B, 0x4620A21C, 0x9D642575, 0xD4585852, 662188605Srrs 0x6C3A598C, 0x250624AB, 0xFE42A3C2, 0xB77EDEE5, 0x4D27DBE1, 0x041BA6C6, 0xDF5F21AF, 0x96635C88, 663188605Srrs 0xAA7754E2, 0xE34B29C5, 0x380FAEAC, 0x7133D38B, 0x8B6AD68F, 0xC256ABA8, 0x19122CC1, 0x502E51E6, 664188605Srrs 0xE84C5038, 0xA1702D1F, 0x7A34AA76, 0x3308D751, 0xC951D255, 0x806DAF72, 0x5B29281B, 0x1215553C, 665188605Srrs 0x230138CF, 0x6A3D45E8, 0xB179C281, 0xF845BFA6, 0x021CBAA2, 0x4B20C785, 0x906440EC, 0xD9583DCB, 666188605Srrs 0x613A3C15, 0x28064132, 0xF342C65B, 0xBA7EBB7C, 0x4027BE78, 0x091BC35F, 0xD25F4436, 0x9B633911, 667188605Srrs 0xA777317B, 0xEE4B4C5C, 0x350FCB35, 0x7C33B612, 0x866AB316, 0xCF56CE31, 0x14124958, 0x5D2E347F, 668188605Srrs 0xE54C35A1, 0xAC704886, 0x7734CFEF, 0x3E08B2C8, 0xC451B7CC, 0x8D6DCAEB, 0x56294D82, 0x1F1530A5 669188605Srrs}; 670188605Srrs 671188605Srrs/* 672188605Srrs * end of the CRC lookup table crc_tableil8_o88 673188605Srrs */ 674188605Srrs 675188605Srrs 676188605Srrsstatic uint32_t 677188605Srrscrc32c_sb8_64_bit(uint32_t crc, 678188605Srrs const unsigned char *p_buf, 679188605Srrs uint32_t length, 680188605Srrs uint32_t init_bytes) 681188605Srrs{ 682188605Srrs uint32_t li; 683188605Srrs uint32_t term1, term2; 684188605Srrs uint32_t running_length; 685188605Srrs uint32_t end_bytes; 686188605Srrs 687188605Srrs running_length = ((length - init_bytes) / 8) * 8; 688188605Srrs end_bytes = length - init_bytes - running_length; 689188605Srrs 690188605Srrs for (li = 0; li < init_bytes; li++) 691188605Srrs crc = sctp_crc_tableil8_o32[(crc ^ *p_buf++) & 0x000000FF] ^ 692188605Srrs (crc >> 8); 693188605Srrs for (li = 0; li < running_length / 8; li++) { 694188605Srrs#if BYTE_ORDER == BIG_ENDIAN 695188605Srrs crc ^= *p_buf++; 696188605Srrs crc ^= (*p_buf++) << 8; 697188605Srrs crc ^= (*p_buf++) << 16; 698188605Srrs crc ^= (*p_buf++) << 24; 699188605Srrs#else 700188605Srrs crc ^= *(const uint32_t *) p_buf; 701188605Srrs p_buf += 4; 702188605Srrs#endif 703188605Srrs term1 = sctp_crc_tableil8_o88[crc & 0x000000FF] ^ 704188605Srrs sctp_crc_tableil8_o80[(crc >> 8) & 0x000000FF]; 705188605Srrs term2 = crc >> 16; 706188605Srrs crc = term1 ^ 707188605Srrs sctp_crc_tableil8_o72[term2 & 0x000000FF] ^ 708188605Srrs sctp_crc_tableil8_o64[(term2 >> 8) & 0x000000FF]; 709188605Srrs 710188605Srrs#if BYTE_ORDER == BIG_ENDIAN 711188605Srrs crc ^= sctp_crc_tableil8_o56[*p_buf++]; 712188605Srrs crc ^= sctp_crc_tableil8_o48[*p_buf++]; 713188605Srrs crc ^= sctp_crc_tableil8_o40[*p_buf++]; 714188605Srrs crc ^= sctp_crc_tableil8_o32[*p_buf++]; 715188605Srrs#else 716188605Srrs term1 = sctp_crc_tableil8_o56[(*(const uint32_t *) p_buf) & 0x000000FF] ^ 717188605Srrs sctp_crc_tableil8_o48[((*(const uint32_t *) p_buf) >> 8) & 0x000000FF]; 718188605Srrs 719188605Srrs term2 = (*(const uint32_t *) p_buf) >> 16; 720188605Srrs crc = crc ^ 721188605Srrs term1 ^ 722188605Srrs sctp_crc_tableil8_o40[term2 & 0x000000FF] ^ 723188605Srrs sctp_crc_tableil8_o32[(term2 >> 8) & 0x000000FF]; 724188605Srrs p_buf += 4; 725188605Srrs#endif 726188605Srrs } 727188605Srrs for (li = 0; li < end_bytes; li++) 728188605Srrs crc = sctp_crc_tableil8_o32[(crc ^ *p_buf++) & 0x000000FF] ^ 729188605Srrs (crc >> 8); 730188605Srrs return crc; 731188605Srrs} 732188605Srrs 733188605Srrsstatic uint32_t 734188605Srrsmultitable_crc32c(uint32_t crc32c, 735188605Srrs const unsigned char *buffer, 736188605Srrs unsigned int length) 737188605Srrs{ 738188605Srrs uint32_t to_even_word; 739188605Srrs 740188605Srrs if (length == 0) { 741188605Srrs return (crc32c); 742188605Srrs } 743188605Srrs to_even_word = (4 - (((uintptr_t) buffer) & 0x3)); 744188605Srrs return (crc32c_sb8_64_bit(crc32c, buffer, length, to_even_word)); 745188605Srrs} 746188605Srrs 747188605Srrsuint32_t 748188605Srrscalculate_crc32c(uint32_t crc32c, 749188605Srrs const unsigned char *buffer, 750188605Srrs unsigned int length) 751188605Srrs{ 752188605Srrs if (length < 4) { 753188605Srrs return (singletable_crc32c(crc32c, buffer, length)); 754188605Srrs } else { 755188605Srrs return (multitable_crc32c(crc32c, buffer, length)); 756188605Srrs } 757188605Srrs} 758