crc-itu-t - Add crc-itu-t lib/
Subsystems (4)
PATCH 1/2 crc-itu-t - Add crc-itu-t lib/
Add the CRC-ITU-T implementation to lib/
Signed-off-by Ivo van Doorn <[email protected]>
---
include/linux/crc-itu-t.h new file +27 -0
@@ -0,0 +1,27 @@ +/* +* crc-itu-t.h - CRC ITU-T V.41 routine +* +* Implements the standard CRC ITU-T V.41: +* Width 16 +* Poly 0x1021 (x^16 + x^12 + x^15 + 1) +* Init 0 +* +* This source code is licensed under the GNU General Public License, +* Version 2. See the file COPYING for more details. +*/ + +#ifndef CRC_ITU_T_H +#define CRC_ITU_T_H + +#include <linux/types.h> + +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 ]; +} + +#endif /* CRC_ITU_T_H */
lib/Kconfig +8 -0
@@ -20,6 +20,14 @@ config CRC16 the kernel tree does. Such modules that use library CRC16 functions require M here. +config CRC_ITU_T + tristate "CRC ITU-T V.41 functions" + help + This option is provided for the case where no in-kernel-tree + modules require CRC ITU-T V.41 functions, but a module built outside + the kernel tree does. Such modules that use library CRC ITU-T V.41 + functions require M here. + config CRC32 tristate "CRC32 functions" default y
lib/Makefile +1 -0
@@ -35,6 +35,7 @@ endif obj-$(CONFIG_CRC_CCITT) += crc-ccitt.o obj-$(CONFIG_CRC16) += crc16.o +obj-$(CONFIG_CRC_ITU_T) += crc-itu-t.o obj-$(CONFIG_CRC32) += crc32.o obj-$(CONFIG_LIBCRC32C) += libcrc32c.o obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
lib/crc-itu-t.c new file +64 -0
64 lines not on this page · raw message