/* SPDX-License-Identifier: MIT */1/******************************************************************************2* features.h3*4* Feature flags, reported by XENVER_get_features.5*6* Copyright (c) 2006, Keir Fraser <[email protected]>7*/89#ifndef __XEN_PUBLIC_FEATURES_H__10#define __XEN_PUBLIC_FEATURES_H__1112/*13* If set, the guest does not need to write-protect its pagetables, and can14* update them via direct writes.15*/16#define XENFEAT_writable_page_tables 01718/*19* If set, the guest does not need to write-protect its segment descriptor20* tables, and can update them via direct writes.21*/22#define XENFEAT_writable_descriptor_tables 12324/*25* If set, translation between the guest's 'pseudo-physical' address space26* and the host's machine address space are handled by the hypervisor. In this27* mode the guest does not need to perform phys-to/from-machine translations28* when performing page table operations.29*/30#define XENFEAT_auto_translated_physmap 23132/* If set, the guest is running in supervisor mode (e.g., x86 ring 0). */33#define XENFEAT_supervisor_mode_kernel 33435/*36* If set, the guest does not need to allocate x86 PAE page directories37* below 4GB. This flag is usually implied by auto_translated_physmap.38*/39#define XENFEAT_pae_pgdir_above_4gb 44041/* x86: Does this Xen host support the MMU_PT_UPDATE_PRESERVE_AD hypercall? */42#define XENFEAT_mmu_pt_update_preserve_ad 54344/* x86: Does this Xen host support the MMU_{CLEAR,COPY}_PAGE hypercall? */45#define XENFEAT_highmem_assist 64647/*48* If set, GNTTABOP_map_grant_ref honors flags to be placed into guest kernel49* available pte bits.50*/51#define XENFEAT_gnttab_map_avail_bits 75253/* x86: Does this Xen host support the HVM callback vector type? */54#define XENFEAT_hvm_callback_vector 85556/* x86: pvclock algorithm is safe to use on HVM */57#define XENFEAT_hvm_safe_pvclock 95859/* x86: pirq can be used by HVM guests */60#define XENFEAT_hvm_pirqs 106162/* operation as Dom0 is supported */63#define XENFEAT_dom0 116465/* Xen also maps grant references at pfn = mfn.66* This feature flag is deprecated and should not be used.67#define XENFEAT_grant_map_identity 1268*/6970/* Guest can use XENMEMF_vnode to specify virtual node for memory op. */71#define XENFEAT_memory_op_vnode_supported 137273/* arm: Hypervisor supports ARM SMC calling convention. */74#define XENFEAT_ARM_SMCCC_supported 147576/*77* x86/PVH: If set, ACPI RSDP can be placed at any address. Otherwise RSDP78* must be located in lower 1MB, as required by ACPI Specification for IA-PC79* systems.80* This feature flag is only consulted if XEN_ELFNOTE_GUEST_OS contains81* the "linux" string.82*/83#define XENFEAT_linux_rsdp_unrestricted 158485/*86* A direct-mapped (or 1:1 mapped) domain is a domain for which its87* local pages have gfn == mfn. If a domain is direct-mapped,88* XENFEAT_direct_mapped is set; otherwise XENFEAT_not_direct_mapped89* is set.90*91* If neither flag is set (e.g. older Xen releases) the assumptions are:92* - not auto_translated domains (x86 only) are always direct-mapped93* - on x86, auto_translated domains are not direct-mapped94* - on ARM, Dom0 is direct-mapped, DomUs are not95*/96#define XENFEAT_not_direct_mapped 1697#define XENFEAT_direct_mapped 179899#define XENFEAT_NR_SUBMAPS 1100101#endif /* __XEN_PUBLIC_FEATURES_H__ */102103104