#include <linux/acpi.h>
#include <linux/cpu.h>
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/kexec.h>
#include <linux/memblock.h>
#include <linux/pgtable.h>
#include <linux/sched/hotplug.h>
#include <asm/apic.h>
#include <asm/barrier.h>
#include <asm/init.h>
#include <asm/intel_pt.h>
#include <asm/nmi.h>
#include <asm/processor.h>
#include <asm/reboot.h>
static u64 acpi_mp_wake_mailbox_paddr __ro_after_init;
static struct acpi_madt_multiproc_wakeup_mailbox *acpi_mp_wake_mailbox __ro_after_init;
static u64 acpi_mp_pgd __ro_after_init;
static u64 acpi_mp_reset_vector_paddr __ro_after_init;
static void acpi_mp_stop_this_cpu(void)
{ … }
static void acpi_mp_play_dead(void)
{ … }
static void acpi_mp_cpu_die(unsigned int cpu)
{ … }
static void __init *alloc_pgt_page(void *dummy)
{ … }
static void __init free_pgt_page(void *pgt, void *dummy)
{ … }
static int __init init_transition_pgtable(pgd_t *pgd)
{ … }
static int __init acpi_mp_setup_reset(u64 reset_vector)
{ … }
static int acpi_wakeup_cpu(u32 apicid, unsigned long start_ip)
{ … }
static void acpi_mp_disable_offlining(struct acpi_madt_multiproc_wakeup *mp_wake)
{ … }
int __init acpi_parse_mp_wake(union acpi_subtable_headers *header,
const unsigned long end)
{ … }