#ifndef __ASM_SUSPEND_H #define __ASM_SUSPEND_H #define NR_CTX_REGS 13 /* * struct cpu_suspend_ctx must be 16-byte aligned since it is allocated on * the stack, which must be 16-byte aligned on v8 */ struct cpu_suspend_ctx { /* * This struct must be kept in sync with * cpu_do_{suspend/resume} in mm/proc.S */ u64 ctx_regs[NR_CTX_REGS]; u64 sp; } __aligned(16); struct sleep_save_sp { phys_addr_t *save_ptr_stash; phys_addr_t save_ptr_stash_phys; }; extern int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)); extern void cpu_resume(void); #endif