| # 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. |