1 
/* 
2 
* There are multiple 16bit CRC polynomials in common use, but this is 
3 
* *the* standard CRC32 polynomial, first popularized by Ethernet. 
4 
* x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0 
5 
*/ 
6 
#define CRCPOLY_LE 0xedb88320 
7 
#define CRCPOLY_BE 0x04c11db7 
8 

9 
/* How many bits at a time to use. Requires a table of 4<<CRC_xx_BITS bytes. */ 
10 
/* For less performancesensitive, use 4 */ 
11 
#ifndef CRC_LE_BITS 
12 
# define CRC_LE_BITS 8 
13 
#endif 
14 
#ifndef CRC_BE_BITS 
15 
# define CRC_BE_BITS 8 
16 
#endif 
17 

18 
/* 
19 
* Littleendian CRC computation. Used with serial bit streams sent 
20 
* lsbitfirst. Be sure to use cpu_to_le32() to append the computed CRC. 
21 
*/ 
22 
#if CRC_LE_BITS > 8  CRC_LE_BITS < 1  CRC_LE_BITS & CRC_LE_BITS1 
23 
# error CRC_LE_BITS must be a power of 2 between 1 and 8 
24 
#endif 
25 

26 
/* 
27 
* Bigendian CRC computation. Used with serial bit streams sent 
28 
* msbitfirst. Be sure to use cpu_to_be32() to append the computed CRC. 
29 
*/ 
30 
#if CRC_BE_BITS > 8  CRC_BE_BITS < 1  CRC_BE_BITS & CRC_BE_BITS1 
31 
# error CRC_BE_BITS must be a power of 2 between 1 and 8 
32 
#endif 