#include "posix_crc.h" #define POSIX_POLY (0x04C11DB7) #define TABLE_SIZE (256) #define DEFAULT_CRC (0xFFFFFFFF) static uint32_t table[TABLE_SIZE]; uint32_t default_CRC(uint32_t data) { uint32_t tmp = data; uint32_t result = 0; int i; tmp = data; result = 0; tmp = tmp << 24; for(i=0;i<8;i++) { if ((tmp ^ result) & 0x80000000) result = (result << 1) ^ POSIX_POLY; else result = result << 1; tmp = tmp << 1; } return result; } void posix_crc_init(void) { int i; for(i=0; i> 24) ^ data) & 0xff]; } while (size) { result = (result << 8) ^ table[((result >> 24) ^ size) & 0xFF]; size >>= 8; } result = ~result; return result; }