| # 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 && KERNEL_MODE_NEON |
| 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 |
| 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 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 |
| default KUNIT_ALL_TESTS |
| select CRC7 |
| select CRC16 |
| select CRC_T10DIF |
| select CRC32 |
| select CRC64 |
| 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_BENCHMARK |
| bool "Benchmark for the CRC functions" |
| depends on CRC_KUNIT_TEST |
| help |
| Include benchmarks in the KUnit test suite for the CRC functions. |