Tom Rini | 10e4779 | 2018-05-06 17:58:06 -0400 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
Prafulla Wadaskar | 4d4d67d | 2009-08-16 05:28:19 +0530 | [diff] [blame] | 2 | /* |
| 3 | * (C) Copyright 2009 |
| 4 | * Marvell Semiconductor <www.marvell.com> |
| 5 | * Written-by: Prafulla Wadaskar <prafulla@marvell.com> |
Prafulla Wadaskar | 4d4d67d | 2009-08-16 05:28:19 +0530 | [diff] [blame] | 6 | */ |
| 7 | |
| 8 | #ifndef _UBOOT_CRC_H |
| 9 | #define _UBOOT_CRC_H |
| 10 | |
oliver@schinagl.nl | 3255e9f | 2016-11-25 16:30:31 +0100 | [diff] [blame] | 11 | /* lib/crc8.c */ |
| 12 | unsigned int crc8(unsigned int crc_start, const unsigned char *vptr, int len); |
| 13 | |
Philipp Tomsich | 36b26d1 | 2018-11-25 19:22:18 +0100 | [diff] [blame] | 14 | /* lib/crc16.c - 16 bit CRC with polynomial x^16+x^12+x^5+1 (CRC-CCITT) */ |
| 15 | uint16_t crc16_ccitt(uint16_t crc_start, const unsigned char *s, int len); |
Philipp Tomsich | 6e2ac3e | 2018-11-25 19:22:19 +0100 | [diff] [blame] | 16 | /** |
| 17 | * crc16_ccitt_wd_buf - Perform CRC16-CCIT on an input buffer and return the |
| 18 | * 16-bit result (network byte-order) in an output buffer |
| 19 | * |
| 20 | * @in: input buffer |
| 21 | * @len: input buffer length |
| 22 | * @out: output buffer (at least 2 bytes) |
| 23 | * @chunk_sz: ignored |
| 24 | */ |
| 25 | void crc16_ccitt_wd_buf(const uint8_t *in, uint len, |
| 26 | uint8_t *out, uint chunk_sz); |
Philipp Tomsich | 36b26d1 | 2018-11-25 19:22:18 +0100 | [diff] [blame] | 27 | |
Peter Tyser | 685b7f5 | 2010-04-12 22:28:05 -0500 | [diff] [blame] | 28 | /* lib/crc32.c */ |
Prafulla Wadaskar | 4d4d67d | 2009-08-16 05:28:19 +0530 | [diff] [blame] | 29 | uint32_t crc32 (uint32_t, const unsigned char *, uint); |
| 30 | uint32_t crc32_wd (uint32_t, const unsigned char *, uint, uint); |
| 31 | uint32_t crc32_no_comp (uint32_t, const unsigned char *, uint); |
| 32 | |
Simon Glass | 0bbd76f | 2013-02-24 20:30:22 +0000 | [diff] [blame] | 33 | /** |
| 34 | * crc32_wd_buf - Perform CRC32 on a buffer and return result in buffer |
| 35 | * |
| 36 | * @input: Input buffer |
| 37 | * @ilen: Input buffer length |
| 38 | * @output: Place to put checksum result (4 bytes) |
| 39 | * @chunk_sz: Trigger watchdog after processing this many bytes |
| 40 | */ |
| 41 | void crc32_wd_buf(const unsigned char *input, uint ilen, |
| 42 | unsigned char *output, uint chunk_sz); |
| 43 | |
Marek BehĂșn | cdccc03 | 2017-09-03 17:00:23 +0200 | [diff] [blame] | 44 | /* lib/crc32c.c */ |
| 45 | void crc32c_init(uint32_t *, uint32_t); |
| 46 | uint32_t crc32c_cal(uint32_t, const char *, int, uint32_t *); |
| 47 | |
Prafulla Wadaskar | 4d4d67d | 2009-08-16 05:28:19 +0530 | [diff] [blame] | 48 | #endif /* _UBOOT_CRC_H */ |