#include <linux/gfp.h>
#include <linux/smp.h>
#include <linux/suspend.h>
#include <linux/scatterlist.h>
#include <linux/kdebug.h>
#include <linux/cpu.h>
#include <linux/pgtable.h>
#include <linux/types.h>
#include <linux/crc32.h>
#include <asm/e820/api.h>
#include <asm/init.h>
#include <asm/proto.h>
#include <asm/page.h>
#include <asm/mtrr.h>
#include <asm/sections.h>
#include <asm/suspend.h>
#include <asm/tlbflush.h>
unsigned long restore_jump_address __visible;
unsigned long jump_address_phys;
unsigned long restore_cr3 __visible;
unsigned long temp_pgt __visible;
unsigned long relocated_restore_code __visible;
int pfn_is_nosave(unsigned long pfn)
{ … }
struct restore_data_record { … };
static inline u32 compute_e820_crc32(struct e820_table *table)
{ … }
#ifdef CONFIG_X86_64
#define RESTORE_MAGIC …
#else
#define RESTORE_MAGIC …
#endif
int arch_hibernation_header_save(void *addr, unsigned int max_size)
{ … }
int arch_hibernation_header_restore(void *addr)
{ … }
int relocate_restore_code(void)
{ … }
int arch_resume_nosmt(void)
{ … }