File Index
Files and directories
Sign in
FILE

crc64.h

File preview with syntax highlighting.

linux-6.19.14/lib/crc/riscv/crc64.h C
 1// SPDX-License-Identifier: GPL-2.0-or-later
 2/*
 3 * RISC-V optimized CRC64 functions
 4 *
 5 * Copyright 2025 Google LLC
 6 */
 7
 8#include <asm/hwcap.h>
 9#include <asm/alternative-macros.h>
10
11#include "crc-clmul.h"
12
13static inline u64 crc64_be_arch(u64 crc, const u8 *p, size_t len)
14{
15	if (riscv_has_extension_likely(RISCV_ISA_EXT_ZBC))
16		return crc64_msb_clmul(crc, p, len,
17				       &crc64_msb_0x42f0e1eba9ea3693_consts);
18	return crc64_be_generic(crc, p, len);
19}
20
21static inline u64 crc64_nvme_arch(u64 crc, const u8 *p, size_t len)
22{
23	if (riscv_has_extension_likely(RISCV_ISA_EXT_ZBC))
24		return crc64_lsb_clmul(crc, p, len,
25				       &crc64_lsb_0x9a6c9329ac4bc9b5_consts);
26	return crc64_nvme_generic(crc, p, len);
27}
~/ Read-only file preview.