# SPDX-License-Identifier: GPL-2.0-only# Kconfig for the kernel's cyclic redundancy check (CRC) library codeconfig CRC4 tristate help The CRC4 library functions. Select this if your module uses any of the functions from <linux/crc4.h>.config CRC7 tristate help The CRC7 library functions. Select this if your module uses any of the functions from <linux/crc7.h>.config CRC8 tristate help The CRC8 library functions. Select this if your module uses any of the functions from <linux/crc8.h>.config CRC16 tristate help The CRC16 library functions. Select this if your module uses any of the functions from <linux/crc16.h>.config CRC_CCITT tristate help The CRC-CCITT library functions. Select this if your module uses any of the functions from <linux/crc-ccitt.h>.config CRC_ITU_T tristate help The CRC-ITU-T library functions. Select this if your module uses any of the functions from <linux/crc-itu-t.h>.config CRC_T10DIF tristate help The CRC-T10DIF library functions. Select this if your module uses any of the functions from <linux/crc-t10dif.h>.config CRC_T10DIF_ARCH bool depends on CRC_T10DIF && CRC_OPTIMIZATIONS default y if ARM && KERNEL_MODE_NEON default y if ARM64 default y if PPC64 && ALTIVEC default y if RISCV && RISCV_ISA_ZBC default y if X86config CRC32 tristate select BITREVERSE help The CRC32 library functions. Select this if your module uses any of the functions from <linux/crc32.h> or <linux/crc32c.h>.config CRC32_ARCH bool depends on CRC32 && CRC_OPTIMIZATIONS default y if ARM && KERNEL_MODE_NEON default y if ARM64 default y if LOONGARCH && 64BIT default y if MIPS && CPU_MIPSR6 default y if PPC64 && ALTIVEC default y if RISCV && RISCV_ISA_ZBC default y if S390 default y if SPARC64 default y if X86config CRC64 tristate help The CRC64 library functions. Select this if your module uses any of the functions from <linux/crc64.h>.config CRC64_ARCH bool depends on CRC64 && CRC_OPTIMIZATIONS default y if ARM && KERNEL_MODE_NEON && !CPU_BIG_ENDIAN default y if ARM64 default y if RISCV && RISCV_ISA_ZBC && 64BIT default y if X86_64config CRC_OPTIMIZATIONS bool "Enable optimized CRC implementations" if EXPERT depends on !UML default y help Disabling this option reduces code size slightly by disabling the architecture-optimized implementations of any CRC variants that are enabled. CRC checksumming performance may get much slower. Keep this enabled unless you're really trying to minimize the size of the kernel.config CRC_KUNIT_TEST tristate "KUnit tests for CRC functions" if !KUNIT_ALL_TESTS depends on KUNIT && (CRC7 || CRC16 || CRC_T10DIF || CRC32 || CRC64) default KUNIT_ALL_TESTS help Unit tests for the CRC library functions. This is intended to help people writing architecture-specific optimized versions. If unsure, say N.config CRC_ENABLE_ALL_FOR_KUNIT tristate "Enable all CRC functions for KUnit test" depends on KUNIT select CRC7 select CRC16 select CRC_T10DIF select CRC32 select CRC64 help Enable all CRC functions that have test code in CRC_KUNIT_TEST. Enable this only if you'd like the CRC KUnit test suite to test all the CRC variants, even ones that wouldn't otherwise need to be built.config CRC_BENCHMARK bool "Benchmark for the CRC functions" depends on CRC_KUNIT_TEST help Include benchmarks in the KUnit test suite for the CRC functions.
# SPDX-License-Identifier: GPL-2.0-only
# Kconfig for the kernel's cyclic redundancy check (CRC) library code
config CRC4
tristate
help
The CRC4 library functions. Select this if your module uses any of
the functions from <linux/crc4.h>.
config CRC7
tristate
help
The CRC7 library functions. Select this if your module uses any of
the functions from <linux/crc7.h>.
config CRC8
tristate
help
The CRC8 library functions. Select this if your module uses any of
the functions from <linux/crc8.h>.
config CRC16
tristate
help
The CRC16 library functions. Select this if your module uses any of
the functions from <linux/crc16.h>.
config CRC_CCITT
tristate
help
The CRC-CCITT library functions. Select this if your module uses any
of the functions from <linux/crc-ccitt.h>.
config CRC_ITU_T
tristate
help
The CRC-ITU-T library functions. Select this if your module uses
any of the functions from <linux/crc-itu-t.h>.
config CRC_T10DIF
tristate
help
The CRC-T10DIF library functions. Select this if your module uses
any of the functions from <linux/crc-t10dif.h>.
config CRC_T10DIF_ARCH
bool
depends on CRC_T10DIF && CRC_OPTIMIZATIONS
default y if ARM && KERNEL_MODE_NEON
default y if ARM64
default y if PPC64 && ALTIVEC
default y if RISCV && RISCV_ISA_ZBC
default y if X86
config CRC32
tristate
select BITREVERSE
help
The CRC32 library functions. Select this if your module uses any of
the functions from <linux/crc32.h> or <linux/crc32c.h>.
config CRC32_ARCH
bool
depends on CRC32 && CRC_OPTIMIZATIONS
default y if ARM && KERNEL_MODE_NEON
default y if ARM64
default y if LOONGARCH && 64BIT
default y if MIPS && CPU_MIPSR6
default y if PPC64 && ALTIVEC
default y if RISCV && RISCV_ISA_ZBC
default y if S390
default y if SPARC64
default y if X86
config CRC64
tristate
help
The CRC64 library functions. Select this if your module uses any of
the functions from <linux/crc64.h>.
config CRC64_ARCH
bool
depends on CRC64 && CRC_OPTIMIZATIONS
default y if ARM && KERNEL_MODE_NEON && !CPU_BIG_ENDIAN
default y if ARM64
default y if RISCV && RISCV_ISA_ZBC && 64BIT
default y if X86_64
config CRC_OPTIMIZATIONS
bool "Enable optimized CRC implementations" if EXPERT
depends on !UML
default y
help
Disabling this option reduces code size slightly by disabling the
architecture-optimized implementations of any CRC variants that are
enabled. CRC checksumming performance may get much slower.
Keep this enabled unless you're really trying to minimize the size of
the kernel.
config CRC_KUNIT_TEST
tristate "KUnit tests for CRC functions" if !KUNIT_ALL_TESTS
depends on KUNIT && (CRC7 || CRC16 || CRC_T10DIF || CRC32 || CRC64)
default KUNIT_ALL_TESTS
help
Unit tests for the CRC library functions.
This is intended to help people writing architecture-specific
optimized versions. If unsure, say N.
config CRC_ENABLE_ALL_FOR_KUNIT
tristate "Enable all CRC functions for KUnit test"
depends on KUNIT
select CRC7
select CRC16
select CRC_T10DIF
select CRC32
select CRC64
help
Enable all CRC functions that have test code in CRC_KUNIT_TEST.
Enable this only if you'd like the CRC KUnit test suite to test all
the CRC variants, even ones that wouldn't otherwise need to be built.
config CRC_BENCHMARK
bool "Benchmark for the CRC functions"
depends on CRC_KUNIT_TEST
help
Include benchmarks in the KUnit test suite for the CRC functions.