#define pr_fmt(fmt) …
#include <linux/mm.h>
#include <linux/kexec.h>
#include <linux/string.h>
#include <linux/gfp.h>
#include <linux/reboot.h>
#include <linux/numa.h>
#include <linux/ftrace.h>
#include <linux/io.h>
#include <linux/suspend.h>
#include <linux/vmalloc.h>
#include <linux/efi.h>
#include <linux/cc_platform.h>
#include <asm/init.h>
#include <asm/tlbflush.h>
#include <asm/mmu_context.h>
#include <asm/io_apic.h>
#include <asm/debugreg.h>
#include <asm/kexec-bzimage64.h>
#include <asm/setup.h>
#include <asm/set_memory.h>
#include <asm/cpu.h>
#ifdef CONFIG_ACPI
struct init_pgtable_data { … };
static int mem_region_callback(struct resource *res, void *arg)
{ … }
static int
map_acpi_tables(struct x86_mapping_info *info, pgd_t *level4p)
{ … }
#else
static int map_acpi_tables(struct x86_mapping_info *info, pgd_t *level4p) { return 0; }
#endif
#ifdef CONFIG_KEXEC_FILE
const struct kexec_file_ops * const kexec_file_loaders[] = …;
#endif
static int
map_efi_systab(struct x86_mapping_info *info, pgd_t *level4p)
{ … }
static void free_transition_pgtable(struct kimage *image)
{ … }
static int init_transition_pgtable(struct kimage *image, pgd_t *pgd)
{ … }
static void *alloc_pgt_page(void *data)
{ … }
static int init_pgtable(struct kimage *image, unsigned long start_pgtable)
{ … }
static void load_segments(void)
{ … }
int machine_kexec_prepare(struct kimage *image)
{ … }
void machine_kexec_cleanup(struct kimage *image)
{ … }
void machine_kexec(struct kimage *image)
{ … }
#ifdef CONFIG_KEXEC_FILE
int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
Elf_Shdr *section, const Elf_Shdr *relsec,
const Elf_Shdr *symtabsec)
{ … }
int arch_kimage_file_post_load_cleanup(struct kimage *image)
{ … }
#endif
#ifdef CONFIG_CRASH_DUMP
static int
kexec_mark_range(unsigned long start, unsigned long end, bool protect)
{ … }
static void kexec_mark_crashkres(bool protect)
{ … }
void arch_kexec_protect_crashkres(void)
{ … }
void arch_kexec_unprotect_crashkres(void)
{ … }
#endif
int arch_kexec_post_alloc_pages(void *vaddr, unsigned int pages, gfp_t gfp)
{ … }
void arch_kexec_pre_free_pages(void *vaddr, unsigned int pages)
{ … }