#ifndef _ASM_GENERIC_HYPERV_TLFS_H
#define _ASM_GENERIC_HYPERV_TLFS_H
#include <linux/types.h>
#include <linux/bits.h>
#include <linux/time64.h>
#define HV_HYP_PAGE_SHIFT …
#define HV_HYP_PAGE_SIZE …
#define HV_HYP_PAGE_MASK …
#define HV_MSR_VP_RUNTIME_AVAILABLE …
#define HV_MSR_TIME_REF_COUNT_AVAILABLE …
#define HV_MSR_SYNIC_AVAILABLE …
#define HV_MSR_SYNTIMER_AVAILABLE …
#define HV_MSR_APIC_ACCESS_AVAILABLE …
#define HV_MSR_HYPERCALL_AVAILABLE …
#define HV_MSR_VP_INDEX_AVAILABLE …
#define HV_MSR_RESET_AVAILABLE …
#define HV_MSR_STAT_PAGES_AVAILABLE …
#define HV_MSR_REFERENCE_TSC_AVAILABLE …
#define HV_MSR_GUEST_IDLE_AVAILABLE …
#define HV_ACCESS_FREQUENCY_MSRS …
#define HV_ACCESS_REENLIGHTENMENT …
#define HV_ACCESS_TSC_INVARIANT …
#define HV_CREATE_PARTITIONS …
#define HV_ACCESS_PARTITION_ID …
#define HV_ACCESS_MEMORY_POOL …
#define HV_ADJUST_MESSAGE_BUFFERS …
#define HV_POST_MESSAGES …
#define HV_SIGNAL_EVENTS …
#define HV_CREATE_PORT …
#define HV_CONNECT_PORT …
#define HV_ACCESS_STATS …
#define HV_DEBUGGING …
#define HV_CPU_MANAGEMENT …
#define HV_ENABLE_EXTENDED_HYPERCALLS …
#define HV_ISOLATION …
struct ms_hyperv_tsc_page { … } __packed;
hv_reference_tsc_msr;
#define HV_LINUX_VENDOR_ID …
#define HV_CRASH_CTL_CRASH_NOTIFY_MSG …
#define HV_CRASH_CTL_CRASH_NOTIFY …
#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE …
#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST …
#define HVCALL_ENABLE_VP_VTL …
#define HVCALL_NOTIFY_LONG_SPIN_WAIT …
#define HVCALL_SEND_IPI …
#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX …
#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX …
#define HVCALL_SEND_IPI_EX …
#define HVCALL_GET_PARTITION_ID …
#define HVCALL_DEPOSIT_MEMORY …
#define HVCALL_CREATE_VP …
#define HVCALL_GET_VP_REGISTERS …
#define HVCALL_SET_VP_REGISTERS …
#define HVCALL_POST_MESSAGE …
#define HVCALL_SIGNAL_EVENT …
#define HVCALL_POST_DEBUG_DATA …
#define HVCALL_RETRIEVE_DEBUG_DATA …
#define HVCALL_RESET_DEBUG_SESSION …
#define HVCALL_ADD_LOGICAL_PROCESSOR …
#define HVCALL_MAP_DEVICE_INTERRUPT …
#define HVCALL_UNMAP_DEVICE_INTERRUPT …
#define HVCALL_RETARGET_INTERRUPT …
#define HVCALL_START_VP …
#define HVCALL_GET_VP_ID_FROM_APIC_ID …
#define HVCALL_FLUSH_GUEST_PHYSICAL_ADDRESS_SPACE …
#define HVCALL_FLUSH_GUEST_PHYSICAL_ADDRESS_LIST …
#define HVCALL_MODIFY_SPARSE_GPA_PAGE_HOST_VISIBILITY …
#define HVCALL_MMIO_READ …
#define HVCALL_MMIO_WRITE …
#define HV_EXT_CALL_QUERY_CAPABILITIES …
#define HV_EXT_CALL_MEMORY_HEAT_HINT …
#define HV_FLUSH_ALL_PROCESSORS …
#define HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES …
#define HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY …
#define HV_FLUSH_USE_EXTENDED_RANGE_FORMAT …
#define HV_EXT_CAPABILITY_MEMORY_COLD_DISCARD_HINT …
enum HV_GENERIC_SET_FORMAT { … };
#define HV_PARTITION_ID_SELF …
#define HV_VP_INDEX_SELF …
#define HV_HYPERCALL_RESULT_MASK …
#define HV_HYPERCALL_FAST_BIT …
#define HV_HYPERCALL_VARHEAD_OFFSET …
#define HV_HYPERCALL_VARHEAD_MASK …
#define HV_HYPERCALL_RSVD0_MASK …
#define HV_HYPERCALL_NESTED …
#define HV_HYPERCALL_REP_COMP_OFFSET …
#define HV_HYPERCALL_REP_COMP_1 …
#define HV_HYPERCALL_REP_COMP_MASK …
#define HV_HYPERCALL_RSVD1_MASK …
#define HV_HYPERCALL_REP_START_OFFSET …
#define HV_HYPERCALL_REP_START_MASK …
#define HV_HYPERCALL_RSVD2_MASK …
#define HV_HYPERCALL_RSVD_MASK …
#define HV_STATUS_SUCCESS …
#define HV_STATUS_INVALID_HYPERCALL_CODE …
#define HV_STATUS_INVALID_HYPERCALL_INPUT …
#define HV_STATUS_INVALID_ALIGNMENT …
#define HV_STATUS_INVALID_PARAMETER …
#define HV_STATUS_ACCESS_DENIED …
#define HV_STATUS_OPERATION_DENIED …
#define HV_STATUS_INSUFFICIENT_MEMORY …
#define HV_STATUS_INVALID_PORT_ID …
#define HV_STATUS_INVALID_CONNECTION_ID …
#define HV_STATUS_INSUFFICIENT_BUFFERS …
#define HV_STATUS_TIME_OUT …
#define HV_STATUS_VTL_ALREADY_ENABLED …
#define HV_CLOCK_HZ …
#define HV_SYNIC_SINT_COUNT …
#define HV_SYNIC_VERSION_1 …
#define HV_SYNIC_FIRST_VALID_VECTOR …
#define HV_SYNIC_CONTROL_ENABLE …
#define HV_SYNIC_SIMP_ENABLE …
#define HV_SYNIC_SIEFP_ENABLE …
#define HV_SYNIC_SINT_MASKED …
#define HV_SYNIC_SINT_AUTO_EOI …
#define HV_SYNIC_SINT_VECTOR_MASK …
#define HV_SYNIC_STIMER_COUNT …
#define HV_MESSAGE_SIZE …
#define HV_MESSAGE_PAYLOAD_BYTE_COUNT …
#define HV_MESSAGE_PAYLOAD_QWORD_COUNT …
enum hv_message_type { … };
hv_message_flags;
hv_port_id;
struct hv_message_header { … } __packed;
struct hv_message { … } __packed;
struct hv_message_page { … } __packed;
struct hv_timer_message_payload { … } __packed;
#define HV_EVENT_FLAGS_COUNT …
#define HV_EVENT_FLAGS_LONG_COUNT …
hv_stimer_config;
hv_synic_event_flags;
hv_synic_scontrol;
hv_synic_sint;
hv_synic_simp;
hv_synic_siefp;
struct hv_vpset { … } __packed;
#define HV_MAX_SPARSE_VCPU_BANKS …
#define HV_VCPUS_PER_SPARSE_BANK …
struct hv_send_ipi { … } __packed;
struct hv_send_ipi_ex { … } __packed;
struct hv_guest_mapping_flush { … } __packed;
#define HV_MAX_FLUSH_PAGES …
#define HV_GPA_PAGE_RANGE_PAGE_SIZE_2MB …
#define HV_GPA_PAGE_RANGE_PAGE_SIZE_1GB …
hv_gpa_page_range;
#define HV_MAX_FLUSH_REP_COUNT …
struct hv_guest_mapping_flush_list { … };
struct hv_tlb_flush { … } __packed;
struct hv_tlb_flush_ex { … } __packed;
struct hv_get_partition_id { … } __packed;
struct hv_deposit_memory { … } __packed;
struct hv_proximity_domain_flags { … } __packed;
struct hv_proximity_domain_info { … } __packed;
struct hv_lp_startup_status { … } __packed;
struct hv_input_add_logical_processor { … } __packed;
struct hv_output_add_logical_processor { … } __packed;
enum HV_SUBNODE_TYPE
{ … };
struct hv_create_vp { … } __packed;
enum hv_interrupt_source { … };
hv_ioapic_rte __packed;
struct hv_interrupt_entry { … } __packed;
#define HV_DEVICE_INTERRUPT_TARGET_MULTICAST …
#define HV_DEVICE_INTERRUPT_TARGET_PROCESSOR_SET …
struct hv_device_interrupt_target { … } __packed;
struct hv_retarget_device_interrupt { … } __packed __aligned(…);
#define HV_REGISTER_HYPERVISOR_VERSION …
#define HV_REGISTER_FEATURES …
#define HV_REGISTER_ENLIGHTENMENTS …
#define HV_REGISTER_GUEST_CRASH_P0 …
#define HV_REGISTER_GUEST_CRASH_P1 …
#define HV_REGISTER_GUEST_CRASH_P2 …
#define HV_REGISTER_GUEST_CRASH_P3 …
#define HV_REGISTER_GUEST_CRASH_P4 …
#define HV_REGISTER_GUEST_CRASH_CTL …
#define HV_REGISTER_GUEST_OS_ID …
#define HV_REGISTER_VP_INDEX …
#define HV_REGISTER_TIME_REF_COUNT …
#define HV_REGISTER_REFERENCE_TSC …
#define HV_REGISTER_SINT0 …
#define HV_REGISTER_SCONTROL …
#define HV_REGISTER_SIEFP …
#define HV_REGISTER_SIMP …
#define HV_REGISTER_EOM …
#define HV_REGISTER_STIMER0_CONFIG …
#define HV_REGISTER_STIMER0_COUNT …
struct hv_get_vp_registers_input { … } __packed;
struct hv_get_vp_registers_output { … };
struct hv_set_vp_registers_input { … } __packed;
enum hv_device_type { … };
hv_pci_rid;
hv_pci_segment;
hv_logical_device_id;
hv_pci_bdf __packed;
hv_pci_bus_range __packed;
hv_device_id __packed;
enum hv_interrupt_trigger_mode { … };
struct hv_device_interrupt_descriptor { … } __packed;
struct hv_input_map_device_interrupt { … } __packed;
struct hv_output_map_device_interrupt { … } __packed;
struct hv_input_unmap_device_interrupt { … } __packed;
#define HV_SOURCE_SHADOW_NONE …
#define HV_SOURCE_SHADOW_BRIDGE_BUS_RANGE …
hv_hypervisor_version_info;
#define HV_MEMORY_HINT_MAX_GPA_PAGE_RANGES …
#define HV_EXT_MEMORY_HEAT_HINT_TYPE_COLD_DISCARD …
struct hv_memory_hint { … } __packed;
#define HV_HYPERCALL_MMIO_MAX_DATA_LENGTH …
struct hv_mmio_read_input { … } __packed;
struct hv_mmio_read_output { … } __packed;
struct hv_mmio_write_input { … } __packed;
#endif