xref: /linux-6.15/include/linux/crc32poly.h (revision e37f2f93)
11fb2e3f2SKrzysztof Kozlowski /* SPDX-License-Identifier: GPL-2.0 */
21fb2e3f2SKrzysztof Kozlowski #ifndef _LINUX_CRC32_POLY_H
31fb2e3f2SKrzysztof Kozlowski #define _LINUX_CRC32_POLY_H
41fb2e3f2SKrzysztof Kozlowski 
51fb2e3f2SKrzysztof Kozlowski /*
61fb2e3f2SKrzysztof Kozlowski  * There are multiple 16-bit CRC polynomials in common use, but this is
71fb2e3f2SKrzysztof Kozlowski  * *the* standard CRC-32 polynomial, first popularized by Ethernet.
81fb2e3f2SKrzysztof Kozlowski  * 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
91fb2e3f2SKrzysztof Kozlowski  */
10*e37f2f93SKrzysztof Kozlowski #define CRC32_POLY_LE 0xedb88320
11*e37f2f93SKrzysztof Kozlowski #define CRC32_POLY_BE 0x04c11db7
121fb2e3f2SKrzysztof Kozlowski 
131fb2e3f2SKrzysztof Kozlowski /*
141fb2e3f2SKrzysztof Kozlowski  * This is the CRC32c polynomial, as outlined by Castagnoli.
151fb2e3f2SKrzysztof Kozlowski  * x^32+x^28+x^27+x^26+x^25+x^23+x^22+x^20+x^19+x^18+x^14+x^13+x^11+x^10+x^9+
161fb2e3f2SKrzysztof Kozlowski  * x^8+x^6+x^0
171fb2e3f2SKrzysztof Kozlowski  */
181fb2e3f2SKrzysztof Kozlowski #define CRC32C_POLY_LE 0x82F63B78
191fb2e3f2SKrzysztof Kozlowski 
201fb2e3f2SKrzysztof Kozlowski #endif /* _LINUX_CRC32_POLY_H */
21