projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
imx8m: soc: enable SCTR clock before timer init
[oweals/u-boot.git]
/
lib
/
crc16.c
diff --git
a/lib/crc16.c
b/lib/crc16.c
index 753b987b0206e8f8cac1dc78fe132c5ab4e86622..f46ba727c9a869afae3af9bfd0abff1d3b26db42 100644
(file)
--- a/
lib/crc16.c
+++ b/
lib/crc16.c
@@
-1,3
+1,4
@@
+// SPDX-License-Identifier: eCos-2.0
/*
*==========================================================================
*
/*
*==========================================================================
*
@@
-6,8
+7,6
@@
* 16 bit CRC with polynomial x^16+x^12+x^5+1
*
*==========================================================================
* 16 bit CRC with polynomial x^16+x^12+x^5+1
*
*==========================================================================
- * SPDX-License-Identifier: eCos-2.0
- *==========================================================================
*#####DESCRIPTIONBEGIN####
*
* Author(s): gthomas
*#####DESCRIPTIONBEGIN####
*
* Author(s): gthomas
@@
-23,7
+22,12
@@
*==========================================================================
*/
*==========================================================================
*/
-#include "crc.h"
+#ifdef USE_HOSTCC
+#include <arpa/inet.h>
+#else
+#include <common.h>
+#endif
+#include <u-boot/crc.h>
/* Table of CRC constants - implements x^16+x^12+x^5+1 */
static const uint16_t crc16_tab[] = {
/* Table of CRC constants - implements x^16+x^12+x^5+1 */
static const uint16_t crc16_tab[] = {
@@
-61,14
+65,20
@@
static const uint16_t crc16_tab[] = {
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0,
};
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0,
};
-uint16_t crc16_ccitt(uint16_t c
rc_start,
unsigned char *buf, int len)
+uint16_t crc16_ccitt(uint16_t c
ksum, const
unsigned char *buf, int len)
{
{
- int i;
- uint16_t cksum;
-
- cksum = crc_start;
- for (i = 0; i < len; i++)
+ for (int i = 0; i < len; i++)
cksum = crc16_tab[((cksum>>8) ^ *buf++) & 0xff] ^ (cksum << 8);
return cksum;
}
cksum = crc16_tab[((cksum>>8) ^ *buf++) & 0xff] ^ (cksum << 8);
return cksum;
}
+
+void crc16_ccitt_wd_buf(const uint8_t *in, uint len,
+ uint8_t *out, uint chunk_sz)
+{
+ uint16_t crc;
+
+ crc = crc16_ccitt(0, in, len);
+ crc = htons(crc);
+ memcpy(out, &crc, sizeof(crc));
+}