malloc_simple: Add support for switching to DRAM heap
[platform/kernel/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_ */