#define pr_fmt(fmt) …
#include <linux/efi.h>
#include <linux/types.h>
#include <linux/bitfield.h>
#include <linux/io.h>
#include <asm/apic.h>
#include <asm/desc.h>
#include <asm/e820/api.h>
#include <asm/sev.h>
#include <asm/ibt.h>
#include <asm/hypervisor.h>
#include <asm/hyperv-tlfs.h>
#include <asm/mshyperv.h>
#include <asm/idtentry.h>
#include <asm/set_memory.h>
#include <linux/kexec.h>
#include <linux/version.h>
#include <linux/vmalloc.h>
#include <linux/mm.h>
#include <linux/hyperv.h>
#include <linux/slab.h>
#include <linux/kernel.h>
#include <linux/cpuhotplug.h>
#include <linux/syscore_ops.h>
#include <clocksource/hyperv_timer.h>
#include <linux/highmem.h>
u64 hv_current_partition_id = …;
EXPORT_SYMBOL_GPL(…);
void *hv_hypercall_pg;
EXPORT_SYMBOL_GPL(…);
union hv_ghcb * __percpu *hv_ghcb_pg;
static void *hv_hypercall_pg_saved;
struct hv_vp_assist_page **hv_vp_assist_page;
EXPORT_SYMBOL_GPL(…);
static int hyperv_init_ghcb(void)
{ … }
static int hv_cpu_init(unsigned int cpu)
{ … }
static void (*hv_reenlightenment_cb)(void);
static void hv_reenlightenment_notify(struct work_struct *dummy)
{ … }
static DECLARE_DELAYED_WORK(hv_reenlightenment_work, hv_reenlightenment_notify);
void hyperv_stop_tsc_emulation(void)
{ … }
EXPORT_SYMBOL_GPL(…);
static inline bool hv_reenlightenment_available(void)
{ … }
DEFINE_IDTENTRY_SYSVEC(sysvec_hyperv_reenlightenment)
{ … }
void set_hv_tscchange_cb(void (*cb)(void))
{ … }
EXPORT_SYMBOL_GPL(…);
void clear_hv_tscchange_cb(void)
{ … }
EXPORT_SYMBOL_GPL(…);
static int hv_cpu_die(unsigned int cpu)
{ … }
static int __init hv_pci_init(void)
{ … }
static int hv_suspend(void)
{ … }
static void hv_resume(void)
{ … }
static struct syscore_ops hv_syscore_ops = …;
static void (* __initdata old_setup_percpu_clockev)(void);
static void __init hv_stimer_setup_percpu_clockev(void)
{ … }
static void __init hv_get_partition_id(void)
{ … }
#if IS_ENABLED(CONFIG_HYPERV_VTL_MODE)
static u8 __init get_vtl(void)
{ … }
#else
static inline u8 get_vtl(void) { return 0; }
#endif
void __init hyperv_init(void)
{ … }
void hyperv_cleanup(void)
{ … }
void hyperv_report_panic(struct pt_regs *regs, long err, bool in_die)
{ … }
EXPORT_SYMBOL_GPL(…);
bool hv_is_hyperv_initialized(void)
{ … }
EXPORT_SYMBOL_GPL(…);