]> git.ipfire.org Git - people/ms/u-boot.git/blob - include/crc.h
board: axs103 - add maintainer information
[people/ms/u-boot.git] / include / crc.h
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 */
40 extern uint32_t
41 cyg_posix_crc32(unsigned char *s, int len);
42
43 /* Gary S. Brown's 32 bit CRC */
44
45 extern uint32_t
46 cyg_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
51 extern uint32_t
52 cyg_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
53
54 /* Ethernet FCS Algorithm */
55
56 extern uint32_t
57 cyg_ether_crc32(unsigned char *s, int len);
58
59 /* Ethernet FCS algorithm, but accumulate the result from a previous */
60 /* CRC calculation. */
61
62 extern uint32_t
63 cyg_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
67 extern uint16_t cyg_crc16(unsigned char *s, int len);
68
69 #endif /* _SERVICES_CRC_CRC_H_ */