| /* |
| *========================================================================== |
| * |
| * 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 */ |
| |
| extern uint16_t cyg_crc16(unsigned char *s, int len); |
| |
| extern uint16_t cyg_crc16_computed(unsigned char *buf, int len, uint16_t computed_crc); |
| |
| #endif /* _SERVICES_CRC_CRC_H_ */ |