/* A CRC-16 CCITT checksum module */ #include #include #include "crc16.h" #include "ccitttab.h" #define unused(x) (x) void crc16_init(unsigned short *crcptr) { *crcptr = 0x0UL; } void crc16_process(unsigned short *crcptr, const unsigned char *buffer, size_t length) { const unsigned char *ptr = buffer; size_t ctr; for (ctr = 0; ctr < length; ctr++, ptr++) { *crcptr = (((*crcptr) << 8) ^ ccitt_table [ ((*crcptr) >> 8) ^ (*ptr) ]) & 0xFFFF; } } void crc16_finalize(unsigned short *crcptr) { /* unused(crcptr); */ }