# SPDX-License-Identifier: GPL-2.0-only

menuconfig TARGET_CORE
	tristate "Generic Target Core Mod (TCM) and ConfigFS Infrastructure"
	depends on BLOCK
	select CONFIGFS_FS
	select CRC_T10DIF
	select SCSI_COMMON
	select SGL_ALLOC
	default n
	help
	Say Y or M here to enable the TCM Storage Engine and ConfigFS enabled
	control path for target_core_mod.  This includes built-in TCM RAMDISK
	subsystem logic for virtual LUN 0 access

if TARGET_CORE

config TCM_IBLOCK
	tristate "TCM/IBLOCK Subsystem Plugin for Linux/BLOCK"
	select BLK_DEV_INTEGRITY
	help
	Say Y here to enable the TCM/IBLOCK subsystem plugin for non-buffered
	access to Linux/Block devices using BIO

config TCM_FILEIO
	tristate "TCM/FILEIO Subsystem Plugin for Linux/VFS"
	help
	Say Y here to enable the TCM/FILEIO subsystem plugin for buffered
	access to Linux/VFS struct file or struct block_device

config TCM_PSCSI
	tristate "TCM/pSCSI Subsystem Plugin for Linux/SCSI"
	depends on SCSI
	help
	Say Y here to enable the TCM/pSCSI subsystem plugin for non-buffered
	passthrough access to Linux/SCSI device

config TCM_USER2
	tristate "TCM/USER Subsystem Plugin for Linux"
	depends on UIO && NET
	help
	Say Y here to enable the TCM/USER subsystem plugin for a userspace
	process to handle requests. This is version 2 of the ABI; version 1
	is obsolete.

source "drivers/target/loopback/Kconfig"
source "drivers/target/tcm_fc/Kconfig"
source "drivers/target/iscsi/Kconfig"
source "drivers/target/sbp/Kconfig"
source "drivers/target/tcm_remote/Kconfig"

endif