|
Lines 61-74
static const unsigned int crc_table[256] = {
Link Here
|
| 61 |
0x2d02ef8dL |
61 |
0x2d02ef8dL |
| 62 |
}; |
62 |
}; |
| 63 |
|
63 |
|
| 64 |
#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8); |
64 |
//if (byte != 0 && buf % 0x200 == 0) |
|
|
65 |
#define DO1(buf) byte = (*buf); \ |
| 66 |
if (((unsigned int)buf) >= 0x6b00) \ |
| 67 |
if (((unsigned int)buf) < 0x6c60) \ |
| 68 |
printf("crc %9x %02x %08x\n", buf, byte, crc); \ |
| 69 |
buf++; \ |
| 70 |
crc = crc_table[((int)crc ^ byte) & 0xff] ^ (crc >> 8); |
| 65 |
#define DO2(buf) DO1(buf); DO1(buf); |
71 |
#define DO2(buf) DO1(buf); DO1(buf); |
| 66 |
#define DO4(buf) DO2(buf); DO2(buf); |
72 |
#define DO4(buf) DO2(buf); DO2(buf); |
| 67 |
#define DO8(buf) DO4(buf); DO4(buf); |
73 |
#define DO8(buf) DO4(buf); DO4(buf); |
| 68 |
|
74 |
|
| 69 |
unsigned int crc32(const unsigned char *buffer, unsigned int len) |
75 |
unsigned int crc32(const unsigned char *buffer, unsigned int len) |
| 70 |
{ |
76 |
{ |
| 71 |
unsigned int crc; |
77 |
unsigned int crc, byte; |
| 72 |
crc = 0; |
78 |
crc = 0; |
| 73 |
crc = crc ^ 0xffffffffL; |
79 |
crc = crc ^ 0xffffffffL; |
| 74 |
while(len >= 8) { |
80 |
while(len >= 8) { |