unsigned long crcword = 0L; const unsigned char *p = (const unsigned char *) buf; while (len--) { unsigned long newbyte = *p++; newbyte ^= crcword & 0xFFL; crcword = (crcword >> 8) ^ crc32_table[newbyte]; } return crcword;
return crc32_update(0L, buf, len);
unsigned long crc32(const void *buf, size_t len){    unsigned long crcword = 0L;    const unsigned char *p = (const unsigned char *) buf;    while (len--) {	unsigned long newbyte = *p++;	newbyte ^= crcword & 0xFFL;	crcword = (crcword >> 8) ^ crc32_table[newbyte];    }    return crcword;}