162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig VHOST_IOTLB
362306a36Sopenharmony_ci	tristate
462306a36Sopenharmony_ci	help
562306a36Sopenharmony_ci	  Generic IOTLB implementation for vhost and vringh.
662306a36Sopenharmony_ci	  This option is selected by any driver which needs to support
762306a36Sopenharmony_ci	  an IOMMU in software.
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciconfig VHOST_RING
1062306a36Sopenharmony_ci	tristate
1162306a36Sopenharmony_ci	select VHOST_IOTLB
1262306a36Sopenharmony_ci	help
1362306a36Sopenharmony_ci	  This option is selected by any driver which needs to access
1462306a36Sopenharmony_ci	  the host side of a virtio ring.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciconfig VHOST_TASK
1762306a36Sopenharmony_ci	bool
1862306a36Sopenharmony_ci	default n
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciconfig VHOST
2162306a36Sopenharmony_ci	tristate
2262306a36Sopenharmony_ci	select VHOST_IOTLB
2362306a36Sopenharmony_ci	select VHOST_TASK
2462306a36Sopenharmony_ci	help
2562306a36Sopenharmony_ci	  This option is selected by any driver which needs to access
2662306a36Sopenharmony_ci	  the core of vhost.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_cimenuconfig VHOST_MENU
2962306a36Sopenharmony_ci	bool "VHOST drivers"
3062306a36Sopenharmony_ci	default y
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciif VHOST_MENU
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciconfig VHOST_NET
3562306a36Sopenharmony_ci	tristate "Host kernel accelerator for virtio net"
3662306a36Sopenharmony_ci	depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP)
3762306a36Sopenharmony_ci	select VHOST
3862306a36Sopenharmony_ci	help
3962306a36Sopenharmony_ci	  This kernel module can be loaded in host kernel to accelerate
4062306a36Sopenharmony_ci	  guest networking with virtio_net. Not to be confused with virtio_net
4162306a36Sopenharmony_ci	  module itself which needs to be loaded in guest kernel.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
4462306a36Sopenharmony_ci	  be called vhost_net.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciconfig VHOST_SCSI
4762306a36Sopenharmony_ci	tristate "VHOST_SCSI TCM fabric driver"
4862306a36Sopenharmony_ci	depends on TARGET_CORE && EVENTFD
4962306a36Sopenharmony_ci	select VHOST
5062306a36Sopenharmony_ci	default n
5162306a36Sopenharmony_ci	help
5262306a36Sopenharmony_ci	Say M here to enable the vhost_scsi TCM fabric module
5362306a36Sopenharmony_ci	for use with virtio-scsi guests
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciconfig VHOST_VSOCK
5662306a36Sopenharmony_ci	tristate "vhost virtio-vsock driver"
5762306a36Sopenharmony_ci	depends on VSOCKETS && EVENTFD
5862306a36Sopenharmony_ci	select VHOST
5962306a36Sopenharmony_ci	select VIRTIO_VSOCKETS_COMMON
6062306a36Sopenharmony_ci	default n
6162306a36Sopenharmony_ci	help
6262306a36Sopenharmony_ci	This kernel module can be loaded in the host kernel to provide AF_VSOCK
6362306a36Sopenharmony_ci	sockets for communicating with guests.  The guests must have the
6462306a36Sopenharmony_ci	virtio_transport.ko driver loaded to use the virtio-vsock device.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	To compile this driver as a module, choose M here: the module will be called
6762306a36Sopenharmony_ci	vhost_vsock.
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ciconfig VHOST_VDPA
7062306a36Sopenharmony_ci	tristate "Vhost driver for vDPA-based backend"
7162306a36Sopenharmony_ci	depends on EVENTFD
7262306a36Sopenharmony_ci	select VHOST
7362306a36Sopenharmony_ci	select IRQ_BYPASS_MANAGER
7462306a36Sopenharmony_ci	depends on VDPA
7562306a36Sopenharmony_ci	help
7662306a36Sopenharmony_ci	  This kernel module can be loaded in host kernel to accelerate
7762306a36Sopenharmony_ci	  guest virtio devices with the vDPA-based backends.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
8062306a36Sopenharmony_ci	  will be called vhost_vdpa.
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciconfig VHOST_CROSS_ENDIAN_LEGACY
8362306a36Sopenharmony_ci	bool "Cross-endian support for vhost"
8462306a36Sopenharmony_ci	default n
8562306a36Sopenharmony_ci	help
8662306a36Sopenharmony_ci	  This option allows vhost to support guests with a different byte
8762306a36Sopenharmony_ci	  ordering from host while using legacy virtio.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci	  Userspace programs can control the feature using the
9062306a36Sopenharmony_ci	  VHOST_SET_VRING_ENDIAN and VHOST_GET_VRING_ENDIAN ioctls.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci	  This is only useful on a few platforms (ppc64 and arm64). Since it
9362306a36Sopenharmony_ci	  adds some overhead, it is disabled by default.
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci	  If unsure, say "N".
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciendif
98