summaryrefslogtreecommitdiff
path: root/include/crc.h (plain)
blob: 5085d4ed477919c0f01390742c7b5b23892e9894
1/*
2 *==========================================================================
3 *
4 * crc.h
5 *
6 * Interface for the CRC algorithms.
7 *
8 *==========================================================================
9 * SPDX-License-Identifier: eCos-2.0
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/* Compute a CRC, using the POSIX 1003 definition */
40extern uint32_t
41cyg_posix_crc32(unsigned char *s, int len);
42
43/* Gary S. Brown's 32 bit CRC */
44
45extern uint32_t
46cyg_crc32(unsigned char *s, int len);
47
48/* Gary S. Brown's 32 bit CRC, but accumulate the result from a */
49/* previous CRC calculation */
50
51extern uint32_t
52cyg_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
53
54/* Ethernet FCS Algorithm */
55
56extern uint32_t
57cyg_ether_crc32(unsigned char *s, int len);
58
59/* Ethernet FCS algorithm, but accumulate the result from a previous */
60/* CRC calculation. */
61
62extern uint32_t
63cyg_ether_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
64
65/* 16 bit CRC with polynomial x^16+x^12+x^5+1 */
66
67extern uint16_t cyg_crc16(unsigned char *s, int len);
68
69#endif /* _SERVICES_CRC_CRC_H_ */
70