#include <linux/acpi.h>
#include <linux/cpu.h>
#include <linux/kexec.h>
#include <linux/memblock.h>
#include <linux/virtio_anchor.h>
#include <xen/features.h>
#include <xen/events.h>
#include <xen/hvm.h>
#include <xen/interface/hvm/hvm_op.h>
#include <xen/interface/memory.h>
#include <asm/apic.h>
#include <asm/cpu.h>
#include <asm/smp.h>
#include <asm/io_apic.h>
#include <asm/reboot.h>
#include <asm/setup.h>
#include <asm/idtentry.h>
#include <asm/hypervisor.h>
#include <asm/e820/api.h>
#include <asm/early_ioremap.h>
#include <asm/xen/cpuid.h>
#include <asm/xen/hypervisor.h>
#include <asm/xen/page.h>
#include "xen-ops.h"
static unsigned long shared_info_pfn;
__ro_after_init bool xen_percpu_upcall;
EXPORT_SYMBOL_GPL(…);
void xen_hvm_init_shared_info(void)
{ … }
static void __init reserve_shared_info(void)
{ … }
static void __init xen_hvm_init_mem_mapping(void)
{ … }
static void __init init_hvm_pv_info(void)
{ … }
DEFINE_IDTENTRY_SYSVEC(sysvec_xen_hvm_callback)
{ … }
#ifdef CONFIG_KEXEC_CORE
static void xen_hvm_shutdown(void)
{ … }
#endif
#ifdef CONFIG_CRASH_DUMP
static void xen_hvm_crash_shutdown(struct pt_regs *regs)
{ … }
#endif
static int xen_cpu_up_prepare_hvm(unsigned int cpu)
{ … }
static int xen_cpu_dead_hvm(unsigned int cpu)
{ … }
static void __init xen_hvm_guest_init(void)
{ … }
static __init int xen_parse_nopv(char *arg)
{ … }
early_param(…);
static __init int xen_parse_no_vector_callback(char *arg)
{ … }
early_param(…);
static __init bool xen_x2apic_available(void)
{ … }
static bool __init msi_ext_dest_id(void)
{ … }
static __init void xen_hvm_guest_late_init(void)
{ … }
static uint32_t __init xen_platform_hvm(void)
{ … }
struct hypervisor_x86 x86_hyper_xen_hvm __initdata = …;