# SPDX-License-Identifier: GPL-2.0

config XOR_BLOCKS
	tristate

# selected by architectures that provide an optimized XOR implementation
config XOR_BLOCKS_ARCH
	depends on XOR_BLOCKS
	default y if ALPHA
	default y if ARM
	default y if ARM64
	default y if CPU_HAS_LSX		# loongarch
	default y if ALTIVEC			# powerpc
	default y if RISCV_ISA_V
	default y if SPARC
	default y if S390
	default y if X86_32
	default y if X86_64
	bool

config XOR_KUNIT_TEST
	tristate "KUnit tests for xor_gen" if !KUNIT_ALL_TESTS
	depends on KUNIT
	depends on XOR_BLOCKS
	default KUNIT_ALL_TESTS
	help
	  Unit tests for the XOR library functions.

	  This is intended to help people writing architecture-specific
	  optimized versions.  If unsure, say N.

config RAID6_PQ
	tristate

# selected by architectures that provide an optimized PQ implementation
config RAID6_PQ_ARCH
	depends on RAID6_PQ
	default y if KERNEL_MODE_NEON		# arm32/arm64
	default y if LOONGARCH
	default y if ALTIVEC			# powerpc
	default y if RISCV_ISA_V
	default y if S390
	default y if X86
	bool

config RAID6_PQ_KUNIT_TEST
	tristate "KUnit tests for RAID6 PQ functions" if !KUNIT_ALL_TESTS
	depends on KUNIT
	depends on RAID6_PQ
	default KUNIT_ALL_TESTS
	help
	  Unit tests for the RAID6 PQ library functions.

	  This is intended to help people writing architecture-specific
	  optimized versions.  If unsure, say N.

config RAID6_PQ_BENCHMARK
	bool "Automatically choose fastest RAID6 PQ functions"
	depends on RAID6_PQ
	default y
	help
	  Benchmark all available RAID6 PQ functions on init and choose the
	  fastest one.
