Lines Matching full:crc

62 static inline u64 crc32_le_prep(u32 crc, unsigned long const *ptr)  in crc32_le_prep()  argument
64 return (u64)crc ^ (__force u64)__cpu_to_le64(*ptr); in crc32_le_prep()
69 u32 crc; in crc32_le_zbc() local
80 : "=&r" (crc) in crc32_le_zbc()
85 return crc; in crc32_le_zbc()
88 static inline u64 crc32_be_prep(u32 crc, unsigned long const *ptr) in crc32_be_prep() argument
90 return ((u64)crc << 32) ^ (__force u64)__cpu_to_be64(*ptr); in crc32_be_prep()
100 static inline u32 crc32_le_prep(u32 crc, unsigned long const *ptr) in crc32_le_prep() argument
102 return crc ^ (__force u32)__cpu_to_le32(*ptr); in crc32_le_prep()
107 u32 crc; in crc32_le_zbc() local
117 : "=&r" (crc) in crc32_le_zbc()
122 return crc; in crc32_le_zbc()
125 static inline u32 crc32_be_prep(u32 crc, unsigned long const *ptr) in crc32_be_prep() argument
127 return crc ^ (__force u32)__cpu_to_be32(*ptr); in crc32_be_prep()
136 u32 crc; in crc32_be_zbc() local
144 : "=&r" (crc) in crc32_be_zbc()
149 return crc; in crc32_be_zbc()
155 typedef u32 (*fallback)(u32 crc, unsigned char const *p, size_t len);
157 static inline u32 crc32_le_unaligned(u32 crc, unsigned char const *p, in crc32_le_unaligned() argument
168 s ^= (unsigned long)crc << (__riscv_xlen - bits); in crc32_le_unaligned()
170 crc_low = crc >> bits; in crc32_le_unaligned()
172 crc = crc32_le_zbc(s, poly, poly_qt); in crc32_le_unaligned()
173 crc ^= crc_low; in crc32_le_unaligned()
175 return crc; in crc32_le_unaligned()
178 static inline u32 __pure crc32_le_generic(u32 crc, unsigned char const *p, in crc32_le_generic() argument
195 crc = crc32_le_unaligned(crc, p, head_len, poly, poly_qt); in crc32_le_generic()
205 s = crc32_le_prep(crc, p_ul); in crc32_le_generic()
206 crc = crc32_le_zbc(s, poly, poly_qt); in crc32_le_generic()
213 crc = crc32_le_unaligned(crc, p, tail_len, poly, poly_qt); in crc32_le_generic()
215 return crc; in crc32_le_generic()
218 return crc_fb(crc, p, len); in crc32_le_generic()
221 u32 __pure crc32_le_arch(u32 crc, const u8 *p, size_t len) in crc32_le_arch() argument
223 return crc32_le_generic(crc, p, len, CRC32_POLY_LE, CRC32_POLY_QT_LE, in crc32_le_arch()
228 u32 __pure crc32c_le_arch(u32 crc, const u8 *p, size_t len) in crc32c_le_arch() argument
230 return crc32_le_generic(crc, p, len, CRC32C_POLY_LE, in crc32c_le_arch()
235 static inline u32 crc32_be_unaligned(u32 crc, unsigned char const *p, in crc32_be_unaligned() argument
247 s ^= crc >> (32 - bits); in crc32_be_unaligned()
248 crc_low = crc << bits; in crc32_be_unaligned()
250 s ^= (unsigned long)crc << (bits - 32); in crc32_be_unaligned()
253 crc = crc32_be_zbc(s); in crc32_be_unaligned()
254 crc ^= crc_low; in crc32_be_unaligned()
256 return crc; in crc32_be_unaligned()
259 u32 __pure crc32_be_arch(u32 crc, const u8 *p, size_t len) in crc32_be_arch() argument
273 crc = crc32_be_unaligned(crc, p, head_len); in crc32_be_arch()
283 s = crc32_be_prep(crc, p_ul); in crc32_be_arch()
284 crc = crc32_be_zbc(s); in crc32_be_arch()
291 crc = crc32_be_unaligned(crc, p, tail_len); in crc32_be_arch()
293 return crc; in crc32_be_arch()
296 return crc32_be_base(crc, p, len); in crc32_be_arch()