#
# 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_DOM0
	def_bool y
	depends on XEN && PCI_XEN && SWIOTLB_XEN
	depends on X86_LOCAL_APIC && X86_IO_APIC && ACPI && PCI

# Dummy symbol since people have come to rely on the PRIVILEGED_GUEST
# name in tools.
config XEN_PRIVILEGED_GUEST
	def_bool XEN_DOM0

config XEN_PVHVM
	def_bool y
	depends on XEN
	depends on X86_LOCAL_APIC

config XEN_MAX_DOMAIN_MEMORY
       int
       default 128
       depends on XEN
       help
         This only affects the sizing of some bss arrays, the unused
         portions of which are freed.

config XEN_SAVE_RESTORE
       bool
       depends on XEN
       select HIBERNATE_CALLBACKS
       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.

config XEN_DEBUG
	bool "Enable Xen debug checks"
	depends on XEN
	default n
	help
	  Enable various WARN_ON checks in the Xen MMU code.
	  Enabling this option WILL incur a significant performance overhead.
