# SPDX-License-Identifier: GPL-2.0-only
config VHOST_IOTLB
	tristate
	help
	  Generic IOTLB implementation for vhost and vringh.
	  This option is selected by any driver which needs to support
	  an IOMMU in software.

config VHOST_RING
	tristate
	select VHOST_IOTLB
	help
	  This option is selected by any driver which needs to access
	  the host side of a virtio ring.

config VHOST_TASK
	bool
	default n

config VHOST
	tristate
	select VHOST_IOTLB
	select VHOST_TASK
	help
	  This option is selected by any driver which needs to access
	  the core of vhost.

menuconfig VHOST_MENU
	bool "VHOST drivers"
	default y

if VHOST_MENU

config VHOST_NET
	tristate "Host kernel accelerator for virtio net"
	depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP)
	select VHOST
	help
	  This kernel module can be loaded in host kernel to accelerate
	  guest networking with virtio_net. Not to be confused with virtio_net
	  module itself which needs to be loaded in guest kernel.

	  To compile this driver as a module, choose M here: the module will
	  be called vhost_net.

config VHOST_SCSI
	tristate "VHOST_SCSI TCM fabric driver"
	depends on TARGET_CORE && EVENTFD
	select VHOST
	default n
	help
	Say M here to enable the vhost_scsi TCM fabric module
	for use with virtio-scsi guests

config VHOST_VSOCK
	tristate "vhost virtio-vsock driver"
	depends on VSOCKETS && EVENTFD
	select VHOST
	select VIRTIO_VSOCKETS_COMMON
	default n
	help
	This kernel module can be loaded in the host kernel to provide AF_VSOCK
	sockets for communicating with guests.  The guests must have the
	virtio_transport.ko driver loaded to use the virtio-vsock device.

	To compile this driver as a module, choose M here: the module will be called
	vhost_vsock.

config VHOST_VDPA
	tristate "Vhost driver for vDPA-based backend"
	depends on EVENTFD
	select VHOST
	select IRQ_BYPASS_MANAGER
	depends on VDPA
	help
	  This kernel module can be loaded in host kernel to accelerate
	  guest virtio devices with the vDPA-based backends.

	  To compile this driver as a module, choose M here: the module
	  will be called vhost_vdpa.

config VHOST_CROSS_ENDIAN_LEGACY
	bool "Cross-endian support for vhost"
	default n
	help
	  This option allows vhost to support guests with a different byte
	  ordering from host while using legacy virtio.

	  Userspace programs can control the feature using the
	  VHOST_SET_VRING_ENDIAN and VHOST_GET_VRING_ENDIAN ioctls.

	  This is only useful on a few platforms (ppc64 and arm64). Since it
	  adds some overhead, it is disabled by default.

	  If unsure, say "N".

endif