diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/crc.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/include/crc.h b/include/crc.h index 847a0a4b64..317f6f5494 100644 --- a/include/crc.h +++ b/include/crc.h @@ -3,8 +3,20 @@ #include <linux/types.h> -/* 16 bit CRC with polynomial x^16+x^12+x^5+1 */ -extern uint16_t cyg_crc16(const unsigned char *s, int len); +/* + * Implements the standard CRC ITU-T V.41: + * Width 16 + * Poly 0x1021 (x^16 + x^12 + x^15 + 1) + * Init 0 + */ +extern u16 const crc_itu_t_table[256]; + +extern u16 crc_itu_t(u16 crc, const u8 *buffer, size_t len); + +static inline u16 crc_itu_t_byte(u16 crc, const u8 data) +{ + return (crc << 8) ^ crc_itu_t_table[((crc >> 8) ^ data) & 0xff]; +} uint32_t crc32(uint32_t, const void *, unsigned int); uint32_t crc32_no_comp(uint32_t, const void *, unsigned int); |