diff options
author | ShizZy <shizzy@6bit.net> | 2013-09-04 17:52:59 -0400 |
---|---|---|
committer | ShizZy <shizzy@6bit.net> | 2013-09-04 17:52:59 -0400 |
commit | 72325bef1d6d1e70f308e64bf7d764f9fd2abbc4 (patch) | |
tree | aa6ce8e1e769e47f435fe8ef9b1561ced9c81483 /src/common/src/crc.cpp | |
parent | 27474060e1287a67c45cd790d29b9095b35b2bdf (diff) |
deleted gekko's common files
Diffstat (limited to 'src/common/src/crc.cpp')
-rw-r--r-- | src/common/src/crc.cpp | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/src/common/src/crc.cpp b/src/common/src/crc.cpp deleted file mode 100644 index a36dfdad..00000000 --- a/src/common/src/crc.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include "common.h" -#include "crc.h" - -u32 crc32_table[4][256]; - -u32 Reflect(u32 ref, u8 Count) -{ - u32 value = 0; - - // Swap bit 0 for bit 7 - // bit 1 for bit 6, etc. - for(int i = 1; i < (Count + 1); i++) - { - if(ref & 1) - value |= 1 << (Count - i); - ref >>= 1; - } - return value; -} - -void Init_CRC32_Table() -{ - // This is the official polynomial used by CRC-32 - // in PKZip, WinZip and Ethernet. - u32 ulPolynomial = 0x04c11db7; - - // 256 values representing ASCII character codes. - for(int x = 0; x < 4; x++) - { - for(int i = 0; i <= 0xFF; i++) - { - crc32_table[x][i]=Reflect(i, 8) << 24; - for (int j = 0; j < 8; j++) - crc32_table[x][i] = (crc32_table[x][i] << 1) ^ (crc32_table[x][i] & (1 << 31) ? (ulPolynomial + (x * 8)) : 0); - crc32_table[x][i] = Reflect(crc32_table[x][i], 32); - } - } -} - -u32 GenerateCRC(u8 *StartAddr, u32 len) -{ - u32 ulCRC = -1; - - // Perform the algorithm on each character - // in the string, using the lookup table values. - for(; len > 7; len-=8) - { - ulCRC ^= *(u32 *)StartAddr; - ulCRC = crc32_table[3][((ulCRC) & 0xFF)] ^ - crc32_table[2][((ulCRC >> 8) & 0xFF)] ^ - crc32_table[1][((ulCRC >> 16) & 0xFF)] ^ - crc32_table[0][((ulCRC >> 24))]; - ulCRC ^= *(u32 *)(StartAddr + 4); - ulCRC = crc32_table[3][((ulCRC) & 0xFF)] ^ - crc32_table[2][((ulCRC >> 8) & 0xFF)] ^ - crc32_table[1][((ulCRC >> 16) & 0xFF)] ^ - crc32_table[0][((ulCRC >> 24))]; - StartAddr+=8; - } - - if(len > 3) - { - ulCRC ^= *(u32 *)StartAddr; - ulCRC = crc32_table[3][((ulCRC) & 0xFF)] ^ - crc32_table[2][((ulCRC >> 8) & 0xFF)] ^ - crc32_table[1][((ulCRC >> 16) & 0xFF)] ^ - crc32_table[0][((ulCRC >> 24))]; - StartAddr+=4; - len -= 4; - } - - switch(len) - { - case 3: - ulCRC = crc32_table[0][(ulCRC & 0xFF) ^ *StartAddr] ^ (ulCRC >> 8); - StartAddr++; - case 2: - ulCRC = crc32_table[0][(ulCRC & 0xFF) ^ *StartAddr] ^ (ulCRC >> 8); - StartAddr++; - case 1: - ulCRC = crc32_table[0][(ulCRC & 0xFF) ^ *StartAddr] ^ (ulCRC >> 8); - StartAddr++; - } - - return ulCRC; -} |