Lines Matching refs:crc
57 crc32_body(u32 crc, unsigned char const *buf, size_t len, const u32 (*tab)[256]) argument
60 # define DO_CRC(x) crc = t0[(crc ^ (x)) & 255] ^ (crc >> 8)
66 # define DO_CRC(x) crc = t0[((crc >> 24) ^ (x)) & 255] ^ (crc << 8)
105 q = crc ^ *++b; /* use pre increment for speed */
107 crc = DO_CRC4;
109 crc = DO_CRC8;
111 crc ^= DO_CRC4;
127 return crc;
145 static inline u32 __pure crc32_le_generic(u32 crc, unsigned char const *p, argument
152 crc ^= *p++;
154 crc = (crc >> 1) ^ ((crc & 1) ? polynomial : 0);
158 crc ^= *p++;
159 crc = (crc >> 2) ^ tab[0][crc & 3];
160 crc = (crc >> 2) ^ tab[0][crc & 3];
161 crc = (crc >> 2) ^ tab[0][crc & 3];
162 crc = (crc >> 2) ^ tab[0][crc & 3];
166 crc ^= *p++;
167 crc = (crc >> 4) ^ tab[0][crc & 15];
168 crc = (crc >> 4) ^ tab[0][crc & 15];
173 crc ^= *p++;
174 crc = (crc >> 8) ^ tab[0][crc & 255];
177 crc = (__force u32) __cpu_to_le32(crc);
178 crc = crc32_body(crc, p, len, tab);
179 crc = __le32_to_cpu((__force __le32)crc);
181 return crc;
185 u32 __pure crc32_le(u32 crc, unsigned char const *p, size_t len) argument
187 return crc32_le_generic(crc, p, len, NULL, CRCPOLY_LE);
189 u32 __pure __crc32c_le(u32 crc, unsigned char const *p, size_t len) argument
191 return crc32_le_generic(crc, p, len, NULL, CRC32C_POLY_LE);
194 u32 __pure crc32_le(u32 crc, unsigned char const *p, size_t len) argument
196 return crc32_le_generic(crc, p, len,
199 u32 __pure __crc32c_le(u32 crc, unsigned char const *p, size_t len) argument
201 return crc32_le_generic(crc, p, len,
239 static u32 __attribute_const__ crc32_generic_shift(u32 crc, size_t len, argument
247 crc = (crc >> 1) ^ (crc & 1 ? polynomial : 0);
251 return crc;
256 crc = gf2_multiply(crc, power, polynomial);
266 return crc;
269 u32 __attribute_const__ crc32_le_shift(u32 crc, size_t len) argument
271 return crc32_generic_shift(crc, len, CRCPOLY_LE);
274 u32 __attribute_const__ __crc32c_le_shift(u32 crc, size_t len) argument
276 return crc32_generic_shift(crc, len, CRC32C_POLY_LE);
290 static inline u32 __pure crc32_be_generic(u32 crc, unsigned char const *p, argument
297 crc ^= *p++ << 24;
299 crc =
300 (crc << 1) ^ ((crc & 0x80000000) ? polynomial :
305 crc ^= *p++ << 24;
306 crc = (crc << 2) ^ tab[0][crc >> 30];
307 crc = (crc << 2) ^ tab[0][crc >> 30];
308 crc = (crc << 2) ^ tab[0][crc >> 30];
309 crc = (crc << 2) ^ tab[0][crc >> 30];
313 crc ^= *p++ << 24;
314 crc = (crc << 4) ^ tab[0][crc >> 28];
315 crc = (crc << 4) ^ tab[0][crc >> 28];
319 crc ^= *p++ << 24;
320 crc = (crc << 8) ^ tab[0][crc >> 24];
323 crc = (__force u32) __cpu_to_be32(crc);
324 crc = crc32_body(crc, p, len, tab);
325 crc = __be32_to_cpu((__force __be32)crc);
327 return crc;
331 u32 __pure crc32_be(u32 crc, unsigned char const *p, size_t len) argument
333 return crc32_be_generic(crc, p, len, NULL, CRCPOLY_BE);
336 u32 __pure crc32_be(u32 crc, unsigned char const *p, size_t len) argument
338 return crc32_be_generic(crc, p, len,
865 u32 crc; /* random starting crc */ member
988 static u32 crc; local
994 crc ^= __crc32c_le(test[i].crc, test_buf +
1004 if (test[i].crc32c_le != __crc32c_le(test[i].crc, test_buf +
1036 crc_full = __crc32c_le(test[i].crc, test_buf + test[i].start,
1042 crc1 = __crc32c_le(test[i].crc, test_buf +
1074 static u32 crc; local
1080 crc ^= crc32_le(test[i].crc, test_buf +
1083 crc ^= crc32_be(test[i].crc, test_buf +
1093 if (test[i].crc_le != crc32_le(test[i].crc, test_buf +
1097 if (test[i].crc_be != crc32_be(test[i].crc, test_buf +
1130 crc_full = crc32_le(test[i].crc, test_buf + test[i].start,
1136 crc1 = crc32_le(test[i].crc, test_buf +