#
# KVM configuration
#
menuconfig VIRTUALIZATION
	bool "Virtualization"
	depends on ARCH_SUPPORTS_KVM || X86
	default y
	---help---
	  Say Y here to get to see options for using your Linux host to run other
	  operating systems inside virtual machines (guests).
	  This option alone does not add any kernel code.

	  If you say N, all options in this submenu will be skipped and disabled.

if VIRTUALIZATION

config KVM
	tristate "Kernel-based Virtual Machine (KVM) support"
	depends on ARCH_SUPPORTS_KVM && EXPERIMENTAL
	select PREEMPT_NOTIFIERS
	select ANON_INODES
	---help---
	  Support hosting fully virtualized guest machines using hardware
	  virtualization extensions.  You will need a fairly recent
	  processor equipped with virtualization extensions. You will also
	  need to select one or more of the processor modules below.

	  This module provides access to the hardware capabilities through
	  a character device node named /dev/kvm.

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

	  If unsure, say N.

config KVM_INTEL
	tristate "KVM for Intel processors support"
	depends on KVM
	---help---
	  Provides support for KVM on Intel processors equipped with the VT
	  extensions.

config KVM_AMD
	tristate "KVM for AMD processors support"
	depends on KVM
	---help---
	  Provides support for KVM on AMD processors equipped with the AMD-V
	  (SVM) extensions.

# OK, it's a little counter-intuitive to do this, but it puts it neatly under
# the virtualization menu.
source drivers/lguest/Kconfig

endif # VIRTUALIZATION
