crc-itu-t
Subsystems (4)
PATCH RESEND 3/4 crc-itu-t
This patch add the crc-itu-t implementation to the lib folder.
This crc handler uses the CRC ITU-T V.41 routine that is used in multiple drivers.
Signed-off-by Ivo van Doorn <[email protected]>
---
include/linux/crc-itu-t.h +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
@@ -29,6 +29,14 @@ kernel tree does. Such modules that use library CRC32 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 LIBCRC32C tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check" help
lib/Makefile +1 -0
@@ -38,6 +38,7 @@ obj-$(CONFIG_CRC_CCITT) += crc-ccitt.o obj-$(CONFIG_CRC16) += crc16.o obj-$(CONFIG_CRC32) += crc32.o +obj-$(CONFIG_CRC_ITU_T) += crc-itu-t.o obj-$(CONFIG_LIBCRC32C) += libcrc32c.o obj-$(CONFIG_GENERIC_IOMAP) += iomap.o obj-$(CONFIG_GENERIC_ALLOCATOR) += genalloc.o
lib/crc-itu-t.c +64 -0
64 lines not on this page · raw message