u-boot-brain/include/crc.h
Stefan Roese ecb57f69b2 lib/crc16.c: Rename cyg_crc16() to crc16_ccitt() and add crc start value
The original name of this function is unclear. This patch renames this
CRC16 function to crc16_ccitt() matching its name with its
implementation.

To make the usage of this function more flexible, lets add the CRC start
value as parameter to this function. This way it can be used by other
functions requiring different start values than 0 as well.

Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2016-03-14 19:18:42 -04:00

70 lines
1.6 KiB
C

/*
*==========================================================================
*
* crc.h
*
* Interface for the CRC algorithms.
*
*==========================================================================
* SPDX-License-Identifier: eCos-2.0
*==========================================================================
*#####DESCRIPTIONBEGIN####
*
* Author(s): Andrew Lunn
* Contributors: Andrew Lunn
* Date: 2002-08-06
* Purpose:
* Description:
*
* This code is part of eCos (tm).
*
*####DESCRIPTIONEND####
*
*==========================================================================
*/
#ifndef _SERVICES_CRC_CRC_H_
#define _SERVICES_CRC_CRC_H_
#include <linux/types.h>
#ifndef __externC
# ifdef __cplusplus
# define __externC extern "C"
# else
# define __externC extern
# endif
#endif
/* Compute a CRC, using the POSIX 1003 definition */
extern uint32_t
cyg_posix_crc32(unsigned char *s, int len);
/* Gary S. Brown's 32 bit CRC */
extern uint32_t
cyg_crc32(unsigned char *s, int len);
/* Gary S. Brown's 32 bit CRC, but accumulate the result from a */
/* previous CRC calculation */
extern uint32_t
cyg_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
/* Ethernet FCS Algorithm */
extern uint32_t
cyg_ether_crc32(unsigned char *s, int len);
/* Ethernet FCS algorithm, but accumulate the result from a previous */
/* CRC calculation. */
extern uint32_t
cyg_ether_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
/* 16 bit CRC with polynomial x^16+x^12+x^5+1 (CRC-CCITT) */
uint16_t crc16_ccitt(uint16_t crc_start, unsigned char *s, int len);
#endif /* _SERVICES_CRC_CRC_H_ */