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