#
# This Kconfig describes xen options
#

config XEN
	bool "Xen guest support"
	select PARAVIRT
	select PARAVIRT_CLOCK
	depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
	depends on X86_CMPXCHG && X86_TSC
	help
	  This is the Linux Xen port.  Enabling this will allow the
	  kernel to boot in a paravirtualized environment under the
	  Xen hypervisor.

config XEN_PVHVM
	def_bool y
	depends on XEN
	depends on X86_LOCAL_APIC

config XEN_MAX_DOMAIN_MEMORY
       int "Maximum allowed size of a domain in gigabytes"
       default 8 if X86_32
       default 32 if X86_64
       depends on XEN
       help
         The pseudo-physical to machine address array is sized
         according to the maximum possible memory size of a Xen
         domain.  This array uses 1 page per gigabyte, so there's no
         need to be too stingy here.

config XEN_SAVE_RESTORE
       bool
       depends on XEN && PM
       default y

config XEN_DEBUG_FS
	bool "Enable Xen debug and tuning parameters in debugfs"
	depends on XEN && DEBUG_FS
	default n
	help
	  Enable statistics output and various tuning options in debugfs.
	  Enabling this option may incur a significant performance overhead.
