Lines Matching refs:crc

32 #define CRC32X(crc, value) __asm__("crc32x %w[c], %w[c], %x[v]":[c]"+r"(crc):[v]"r"(value))  argument
33 #define CRC32W(crc, value) __asm__("crc32w %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)) argument
34 #define CRC32H(crc, value) __asm__("crc32h %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)) argument
35 #define CRC32B(crc, value) __asm__("crc32b %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)) argument
36 #define CRC32CX(crc, value) __asm__("crc32cx %w[c], %w[c], %x[v]":[c]"+r"(crc):[v]"r"(value)) argument
37 #define CRC32CW(crc, value) __asm__("crc32cw %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)) argument
38 #define CRC32CH(crc, value) __asm__("crc32ch %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)) argument
39 #define CRC32CB(crc, value) __asm__("crc32cb %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)) argument
41 static u32 crc32_arm64_le_hw(u32 crc, const u8 *p, unsigned int len) in crc32_arm64_le_hw() argument
46 CRC32X(crc, get_unaligned_le64(p)); in crc32_arm64_le_hw()
52 CRC32W(crc, get_unaligned_le32(p)); in crc32_arm64_le_hw()
56 CRC32H(crc, get_unaligned_le16(p)); in crc32_arm64_le_hw()
60 CRC32B(crc, *p); in crc32_arm64_le_hw()
62 return crc; in crc32_arm64_le_hw()
65 static u32 crc32c_arm64_le_hw(u32 crc, const u8 *p, unsigned int len) in crc32c_arm64_le_hw() argument
70 CRC32CX(crc, get_unaligned_le64(p)); in crc32c_arm64_le_hw()
76 CRC32CW(crc, get_unaligned_le32(p)); in crc32c_arm64_le_hw()
80 CRC32CH(crc, get_unaligned_le16(p)); in crc32c_arm64_le_hw()
84 CRC32CB(crc, *p); in crc32c_arm64_le_hw()
86 return crc; in crc32c_arm64_le_hw()
97 u32 crc; member
105 ctx->crc = mctx->key; in chksum_init()
133 ctx->crc = crc32_arm64_le_hw(ctx->crc, data, length); in chksum_update()
142 ctx->crc = crc32c_arm64_le_hw(ctx->crc, data, length); in chksumc_update()
150 put_unaligned_le32(ctx->crc, out); in chksum_final()
158 put_unaligned_le32(~ctx->crc, out); in chksumc_final()
162 static int __chksum_finup(u32 crc, const u8 *data, unsigned int len, u8 *out) in __chksum_finup() argument
164 put_unaligned_le32(crc32_arm64_le_hw(crc, data, len), out); in __chksum_finup()
168 static int __chksumc_finup(u32 crc, const u8 *data, unsigned int len, u8 *out) in __chksumc_finup() argument
170 put_unaligned_le32(~crc32c_arm64_le_hw(crc, data, len), out); in __chksumc_finup()
179 return __chksum_finup(ctx->crc, data, len, out); in chksum_finup()
187 return __chksumc_finup(ctx->crc, data, len, out); in chksumc_finup()