#define pr_fmt(fmt) …
#include <linux/export.h>
#include <linux/reboot.h>
#include <linux/init.h>
#include <linux/pm.h>
#include <linux/efi.h>
#include <linux/dmi.h>
#include <linux/sched.h>
#include <linux/tboot.h>
#include <linux/delay.h>
#include <linux/objtool.h>
#include <linux/pgtable.h>
#include <linux/kexec.h>
#include <acpi/reboot.h>
#include <asm/io.h>
#include <asm/apic.h>
#include <asm/io_apic.h>
#include <asm/desc.h>
#include <asm/hpet.h>
#include <asm/proto.h>
#include <asm/reboot_fixups.h>
#include <asm/reboot.h>
#include <asm/pci_x86.h>
#include <asm/cpu.h>
#include <asm/nmi.h>
#include <asm/smp.h>
#include <linux/ctype.h>
#include <linux/mc146818rtc.h>
#include <asm/realmode.h>
#include <asm/x86_init.h>
#include <asm/efi.h>
void (*pm_power_off)(void);
EXPORT_SYMBOL(…);
static int reboot_emergency;
bool port_cf9_safe = …;
static int __init set_acpi_reboot(const struct dmi_system_id *d)
{ … }
static int __init set_bios_reboot(const struct dmi_system_id *d)
{ … }
static int __init set_efi_reboot(const struct dmi_system_id *d)
{ … }
void __noreturn machine_real_restart(unsigned int type)
{ … }
#ifdef CONFIG_APM_MODULE
EXPORT_SYMBOL(machine_real_restart);
#endif
STACK_FRAME_NON_STANDARD(…);
static int __init set_pci_reboot(const struct dmi_system_id *d)
{ … }
static int __init set_kbd_reboot(const struct dmi_system_id *d)
{ … }
static const struct dmi_system_id reboot_dmi_table[] __initconst = …;
static int __init reboot_init(void)
{ … }
core_initcall(reboot_init);
static inline void kb_wait(void)
{ … }
static inline void nmi_shootdown_cpus_on_restart(void);
#if IS_ENABLED(CONFIG_KVM_X86)
static cpu_emergency_virt_cb __rcu *cpu_emergency_virt_callback;
void cpu_emergency_register_virt_callback(cpu_emergency_virt_cb *callback)
{ … }
EXPORT_SYMBOL_GPL(…);
void cpu_emergency_unregister_virt_callback(cpu_emergency_virt_cb *callback)
{ … }
EXPORT_SYMBOL_GPL(…);
void cpu_emergency_disable_virtualization(void)
{ … }
static void emergency_reboot_disable_virtualization(void)
{ … }
#else
static void emergency_reboot_disable_virtualization(void) { }
#endif
void __attribute__((weak)) mach_reboot_fixups(void)
{ … }
static void native_machine_emergency_restart(void)
{ … }
void native_machine_shutdown(void)
{ … }
static void __machine_emergency_restart(int emergency)
{ … }
static void native_machine_restart(char *__unused)
{ … }
static void native_machine_halt(void)
{ … }
static void native_machine_power_off(void)
{ … }
struct machine_ops machine_ops __ro_after_init = …;
void machine_power_off(void)
{ … }
void machine_shutdown(void)
{ … }
void machine_emergency_restart(void)
{ … }
void machine_restart(char *cmd)
{ … }
void machine_halt(void)
{ … }
#ifdef CONFIG_CRASH_DUMP
void machine_crash_shutdown(struct pt_regs *regs)
{ … }
#endif
int crashing_cpu = …;
#if defined(CONFIG_SMP)
static nmi_shootdown_cb shootdown_callback;
static atomic_t waiting_for_crash_ipi;
static int crash_ipi_issued;
static int crash_nmi_callback(unsigned int val, struct pt_regs *regs)
{ … }
void nmi_shootdown_cpus(nmi_shootdown_cb callback)
{ … }
static inline void nmi_shootdown_cpus_on_restart(void)
{ … }
void run_crash_ipi_callback(struct pt_regs *regs)
{ … }
void __noreturn nmi_panic_self_stop(struct pt_regs *regs)
{ … }
#else
void nmi_shootdown_cpus(nmi_shootdown_cb callback)
{
}
static inline void nmi_shootdown_cpus_on_restart(void) { }
void run_crash_ipi_callback(struct pt_regs *regs)
{
}
#endif