15 #define X25_INIT_CRC 0xffff
16 #define X25_VALIDATE_CRC 0xf0b8
18 #ifndef HAVE_CRC_ACCUMULATE
28 static inline void crc_accumulate(uint8_t data, uint16_t *crcAccum)
33 tmp = data ^ (uint8_t)(*crcAccum &0xff);
35 *crcAccum = (*crcAccum>>8) ^ (tmp<<8) ^ (tmp <<3) ^ (tmp>>4);
45 static inline void crc_init(uint16_t* crcAccum)
47 *crcAccum = X25_INIT_CRC;
58 static inline uint16_t crc_calculate(
const uint8_t* pBuffer, uint16_t length)
63 crc_accumulate(*pBuffer++, &crcTmp);
78 static inline void crc_accumulate_buffer(uint16_t *crcAccum,
const char *pBuffer, uint16_t length)
80 const uint8_t *p = (
const uint8_t *)pBuffer;
82 crc_accumulate(*p++, crcAccum);