[PATCH 3/5] crc16: Move standard CRC-16 implementation from ubifs to lib

Pali Rohár pali at kernel.org
Tue Apr 12 11:20:42 CEST 2022


This implementation provides standard CRC-16 algorithm with polynomial
x^16 + x^15 + x^2 + 1.

Signed-off-by: Pali Rohár <pali at kernel.org>
---
 fs/ubifs/Makefile         | 2 +-
 include/u-boot/crc.h      | 3 +++
 lib/Makefile              | 1 +
 {fs/ubifs => lib}/crc16.c | 0
 4 files changed, 5 insertions(+), 1 deletion(-)
 rename {fs/ubifs => lib}/crc16.c (100%)

diff --git a/fs/ubifs/Makefile b/fs/ubifs/Makefile
index 64d64472945e..631ba5f438cf 100644
--- a/fs/ubifs/Makefile
+++ b/fs/ubifs/Makefile
@@ -9,5 +9,5 @@
 
 obj-y := ubifs.o io.o super.o sb.o master.o lpt.o
 obj-y += lpt_commit.o scan.o lprops.o
-obj-y += tnc.o tnc_misc.o debug.o crc16.o budget.o
+obj-y += tnc.o tnc_misc.o debug.o budget.o
 obj-y += log.o orphan.o recovery.o replay.o gc.o
diff --git a/include/u-boot/crc.h b/include/u-boot/crc.h
index eba8edfb4f31..5174bd7ac413 100644
--- a/include/u-boot/crc.h
+++ b/include/u-boot/crc.h
@@ -25,6 +25,9 @@
  */
 unsigned int crc8(unsigned int crc_start, const unsigned char *vptr, int len);
 
+/* lib/crc16.c - 16 bit CRC with polynomial x^16 + x^15 + x^2 + 1 */
+uint16_t crc16(uint16_t crc, const unsigned char *buffer, size_t len);
+
 /* lib/crc16-ccitt.c - 16 bit CRC with polynomial x^16+x^12+x^5+1 (CRC-CCITT) */
 uint16_t crc16_ccitt(uint16_t crc_start, const unsigned char *s, int len);
 /**
diff --git a/lib/Makefile b/lib/Makefile
index b4f03cc149d3..0d0261b8986f 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -37,6 +37,7 @@ obj-$(CONFIG_CIRCBUF) += circbuf.o
 endif
 
 obj-y += crc8.o
+obj-y += crc16.o
 obj-y += crc16-ccitt.o
 obj-$(CONFIG_ERRNO_STR) += errno_str.o
 obj-$(CONFIG_FIT) += fdtdec_common.o
diff --git a/fs/ubifs/crc16.c b/lib/crc16.c
similarity index 100%
rename from fs/ubifs/crc16.c
rename to lib/crc16.c
-- 
2.20.1



More information about the U-Boot mailing list