# SPDX-License-Identifier: GPL-2.0

menu "Microsoft Hyper-V guest support"

config MSHV_VFIO
	bool

config HYPERV
	tristate "Microsoft Hyper-V client drivers"
	depends on ACPI && ((X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) \
		|| (ARM64 && !CPU_BIG_ENDIAN))
	select PARAVIRT
	select X86_HV_CALLBACK_VECTOR if X86
	help
	  Select this option to run Linux as a Hyper-V client operating
	  system.

config HYPERV_VMM_API
	tristate "Microsoft Hypervisor root partition interfaces: /dev/mshv"
	depends on HYPERV
	select EVENTFD
	select MSHV_VFIO
	help
	  Provides access to interfaces for managing guest virtual machines
	  running under the Microsoft Hypervisor.

	  These interfaces will only work when Linux is running as root
	  partition on the Microsoft Hypervisor.

	  The interfaces are provided via a device named /dev/mshv.

	  To compile this as a module, choose M here.
	  The module is named mshv.

	  If unsure, say N.

config HYPERV_TIMER
	def_bool HYPERV && X86

config HYPERV_UTILS
	tristate "Microsoft Hyper-V Utilities driver"
	depends on HYPERV && CONNECTOR && NLS
	depends on PTP_1588_CLOCK_OPTIONAL
	help
	  Select this option to enable the Hyper-V Utilities.

config HYPERV_BALLOON
	tristate "Microsoft Hyper-V Balloon driver"
	depends on HYPERV
	select PAGE_REPORTING
	help
	  Select this option to enable Hyper-V Balloon driver.

source "drivers/hv/dxgkrnl/Kconfig"

endmenu
