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 VIRTIO_VSOCKETS_COMMON
	select VHOST
	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
	tristate
	---help---
	  This option is selected by any driver which needs to access
	  the core of vhost.

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".
