pub use kernels::PORTABLE_SLICE16 as PORTABLE;
pub use kernels::REFERENCE;
use crate::checksum::common::kernels;
#[cfg(target_arch = "x86_64")]
pub mod x86_64 {
use super::super::x86_64 as arch;
use crate::checksum::dispatchers::Crc64Fn;
pub const XZ_PCLMUL: [Crc64Fn; 5] = [
arch::crc64_xz_pclmul_safe,
arch::crc64_xz_pclmul_2way_safe,
arch::crc64_xz_pclmul_4way_safe,
arch::crc64_xz_pclmul_7way_safe,
arch::crc64_xz_pclmul_8way_safe,
];
pub const XZ_PCLMUL_SMALL: Crc64Fn = arch::crc64_xz_pclmul_small_safe;
pub const XZ_VPCLMUL: [Crc64Fn; 5] = [
arch::crc64_xz_vpclmul_safe,
arch::crc64_xz_vpclmul_2way_safe,
arch::crc64_xz_vpclmul_4way_safe,
arch::crc64_xz_vpclmul_7way_safe,
arch::crc64_xz_vpclmul_8way_safe,
];
pub const XZ_VPCLMUL_4X512: Crc64Fn = arch::crc64_xz_vpclmul_4x512_safe;
pub const NVME_PCLMUL: [Crc64Fn; 5] = [
arch::crc64_nvme_pclmul_safe,
arch::crc64_nvme_pclmul_2way_safe,
arch::crc64_nvme_pclmul_4way_safe,
arch::crc64_nvme_pclmul_7way_safe,
arch::crc64_nvme_pclmul_8way_safe,
];
pub const NVME_PCLMUL_SMALL: Crc64Fn = arch::crc64_nvme_pclmul_small_safe;
pub const NVME_VPCLMUL: [Crc64Fn; 5] = [
arch::crc64_nvme_vpclmul_safe,
arch::crc64_nvme_vpclmul_2way_safe,
arch::crc64_nvme_vpclmul_4way_safe,
arch::crc64_nvme_vpclmul_7way_safe,
arch::crc64_nvme_vpclmul_8way_safe,
];
}
#[cfg(target_arch = "aarch64")]
pub mod aarch64 {
#![cfg_attr(not(any(test, feature = "std")), allow(dead_code))]
#![cfg_attr(not(any(target_os = "linux", target_os = "android")), allow(dead_code))]
use super::super::aarch64 as arch;
use crate::checksum::dispatchers::Crc64Fn;
pub const XZ_PMULL: [Crc64Fn; 5] = [
arch::crc64_xz_pmull_safe,
arch::crc64_xz_pmull_2way_safe,
arch::crc64_xz_pmull_3way_safe,
arch::crc64_xz_pmull_3way_safe, arch::crc64_xz_pmull_3way_safe, ];
pub const XZ_PMULL_SMALL: Crc64Fn = arch::crc64_xz_pmull_small_safe;
pub const XZ_PMULL_EOR3: [Crc64Fn; 5] = [
arch::crc64_xz_pmull_eor3_safe,
arch::crc64_xz_pmull_eor3_2way_safe,
arch::crc64_xz_pmull_eor3_3way_safe,
arch::crc64_xz_pmull_eor3_3way_safe, arch::crc64_xz_pmull_eor3_3way_safe, ];
pub const XZ_SVE2_PMULL: [Crc64Fn; 5] = [
arch::crc64_xz_sve2_pmull_safe,
arch::crc64_xz_sve2_pmull_2way_safe,
arch::crc64_xz_sve2_pmull_3way_safe,
arch::crc64_xz_sve2_pmull_3way_safe, arch::crc64_xz_sve2_pmull_3way_safe, ];
pub const XZ_SVE2_PMULL_SMALL: Crc64Fn = arch::crc64_xz_sve2_pmull_small_safe;
pub const NVME_PMULL: [Crc64Fn; 5] = [
arch::crc64_nvme_pmull_safe,
arch::crc64_nvme_pmull_2way_safe,
arch::crc64_nvme_pmull_3way_safe,
arch::crc64_nvme_pmull_3way_safe, arch::crc64_nvme_pmull_3way_safe, ];
pub const NVME_PMULL_SMALL: Crc64Fn = arch::crc64_nvme_pmull_small_safe;
pub const NVME_PMULL_EOR3: [Crc64Fn; 5] = [
arch::crc64_nvme_pmull_eor3_safe,
arch::crc64_nvme_pmull_eor3_2way_safe,
arch::crc64_nvme_pmull_eor3_3way_safe,
arch::crc64_nvme_pmull_eor3_3way_safe, arch::crc64_nvme_pmull_eor3_3way_safe, ];
pub const NVME_SVE2_PMULL: [Crc64Fn; 5] = [
arch::crc64_nvme_sve2_pmull_safe,
arch::crc64_nvme_sve2_pmull_2way_safe,
arch::crc64_nvme_sve2_pmull_3way_safe,
arch::crc64_nvme_sve2_pmull_3way_safe, arch::crc64_nvme_sve2_pmull_3way_safe, ];
pub const NVME_SVE2_PMULL_SMALL: Crc64Fn = arch::crc64_nvme_sve2_pmull_small_safe;
}
#[cfg(target_arch = "powerpc64")]
pub mod power {
use super::super::power as arch;
use crate::checksum::dispatchers::Crc64Fn;
pub const XZ_VPMSUM: [Crc64Fn; 5] = [
arch::crc64_xz_vpmsum_safe,
arch::crc64_xz_vpmsum_2way_safe,
arch::crc64_xz_vpmsum_4way_safe,
arch::crc64_xz_vpmsum_8way_safe,
arch::crc64_xz_vpmsum_8way_safe, ];
pub const NVME_VPMSUM: [Crc64Fn; 5] = [
arch::crc64_nvme_vpmsum_safe,
arch::crc64_nvme_vpmsum_2way_safe,
arch::crc64_nvme_vpmsum_4way_safe,
arch::crc64_nvme_vpmsum_8way_safe,
arch::crc64_nvme_vpmsum_8way_safe, ];
}
#[cfg(target_arch = "s390x")]
pub mod s390x {
use super::super::s390x as arch;
use crate::checksum::dispatchers::Crc64Fn;
pub const XZ_VGFM: [Crc64Fn; 5] = [
arch::crc64_xz_vgfm_safe,
arch::crc64_xz_vgfm_2way_safe,
arch::crc64_xz_vgfm_4way_safe,
arch::crc64_xz_vgfm_4way_safe, arch::crc64_xz_vgfm_4way_safe, ];
pub const NVME_VGFM: [Crc64Fn; 5] = [
arch::crc64_nvme_vgfm_safe,
arch::crc64_nvme_vgfm_2way_safe,
arch::crc64_nvme_vgfm_4way_safe,
arch::crc64_nvme_vgfm_4way_safe, arch::crc64_nvme_vgfm_4way_safe, ];
}
#[cfg(target_arch = "riscv64")]
#[allow(dead_code)]
pub mod riscv64 {
use super::super::riscv64 as arch;
use crate::checksum::dispatchers::Crc64Fn;
pub const ZBC_NAMES: &[&str] = &[
"riscv64/zbc",
"riscv64/zbc-2way",
"riscv64/zbc-4way",
"riscv64/zbc-8way",
"riscv64/zbc-8way",
];
pub const ZVBC_NAMES: &[&str] = &[
"riscv64/zvbc",
"riscv64/zvbc-2way",
"riscv64/zvbc-4way",
"riscv64/zvbc-4way",
"riscv64/zvbc-4way",
];
pub const XZ_ZBC: [Crc64Fn; 5] = [
arch::crc64_xz_zbc_safe,
arch::crc64_xz_zbc_2way_safe,
arch::crc64_xz_zbc_4way_safe,
arch::crc64_xz_zbc_8way_safe,
arch::crc64_xz_zbc_8way_safe, ];
pub const XZ_ZVBC: [Crc64Fn; 5] = [
arch::crc64_xz_zvbc_safe,
arch::crc64_xz_zvbc_2way_safe,
arch::crc64_xz_zvbc_4way_safe,
arch::crc64_xz_zvbc_4way_safe, arch::crc64_xz_zvbc_4way_safe, ];
pub const NVME_ZBC: [Crc64Fn; 5] = [
arch::crc64_nvme_zbc_safe,
arch::crc64_nvme_zbc_2way_safe,
arch::crc64_nvme_zbc_4way_safe,
arch::crc64_nvme_zbc_8way_safe,
arch::crc64_nvme_zbc_8way_safe, ];
pub const NVME_ZVBC: [Crc64Fn; 5] = [
arch::crc64_nvme_zvbc_safe,
arch::crc64_nvme_zvbc_2way_safe,
arch::crc64_nvme_zvbc_4way_safe,
arch::crc64_nvme_zvbc_4way_safe, arch::crc64_nvme_zvbc_4way_safe, ];
}