unsigned long crc32_sft_buf(unsigned char * buf, unsigned long crc, unsigned long len)
{
unsigned long i;
unsigned char j;
for (i = 0; i < len; i++)
{
crc ^= buf[i];
for (j = 0; j < 8; j++ )
crc = crc & 1 ? (crc >> 1) ^ poly32 : crc >> 1;
/*
crc = crc & 0xFFFFFFFF;
*/
}
return crc;
}