1 /* SPDX-License-Identifier: eCos-2.0 */ 2 /* 3 *========================================================================== 4 * 5 * crc.h 6 * 7 * Interface for the CRC algorithms. 8 * 9 *========================================================================== 10 *========================================================================== 11 *#####DESCRIPTIONBEGIN#### 12 * 13 * Author(s): Andrew Lunn 14 * Contributors: Andrew Lunn 15 * Date: 2002-08-06 16 * Purpose: 17 * Description: 18 * 19 * This code is part of eCos (tm). 20 * 21 *####DESCRIPTIONEND#### 22 * 23 *========================================================================== 24 */ 25 26 #ifndef _SERVICES_CRC_CRC_H_ 27 #define _SERVICES_CRC_CRC_H_ 28 29 #include <linux/types.h> 30 31 #ifndef __externC 32 # ifdef __cplusplus 33 # define __externC extern "C" 34 # else 35 # define __externC extern 36 # endif 37 #endif 38 39 /* 16 bit CRC with polynomial x^16+x^12+x^5+1 (CRC-CCITT) */ 40 41 uint16_t crc16_ccitt(uint16_t crc_start, unsigned char *s, int len); 42 43 #endif /* _SERVICES_CRC_CRC_H_ */ 44