#include <linux/types.h>
#include <linux/vmalloc.h>
#include <linux/mm.h>
#include <linux/clockchips.h>
#include <linux/hyperv.h>
#include <linux/slab.h>
#include <linux/cpuhotplug.h>
#include <asm/hypervisor.h>
#include <asm/mshyperv.h>
#include <asm/apic.h>
#include <asm/trace/hyperv.h>
static struct apic orig_apic;
static u64 hv_apic_icr_read(void)
{ … }
static void hv_apic_icr_write(u32 low, u32 id)
{ … }
static u32 hv_apic_read(u32 reg)
{ … }
static void hv_apic_write(u32 reg, u32 val)
{ … }
static void hv_apic_eoi_write(void)
{ … }
static bool cpu_is_self(int cpu)
{ … }
static bool __send_ipi_mask_ex(const struct cpumask *mask, int vector,
bool exclude_self)
{ … }
static bool __send_ipi_mask(const struct cpumask *mask, int vector,
bool exclude_self)
{ … }
static bool __send_ipi_one(int cpu, int vector)
{ … }
static void hv_send_ipi(int cpu, int vector)
{ … }
static void hv_send_ipi_mask(const struct cpumask *mask, int vector)
{ … }
static void hv_send_ipi_mask_allbutself(const struct cpumask *mask, int vector)
{ … }
static void hv_send_ipi_allbutself(int vector)
{ … }
static void hv_send_ipi_all(int vector)
{ … }
static void hv_send_ipi_self(int vector)
{ … }
void __init hv_apic_init(void)
{ … }