1#ifndef __ASM_SUSPEND_H 2#define __ASM_SUSPEND_H 3 4#define NR_CTX_REGS 11 5 6/* 7 * struct cpu_suspend_ctx must be 16-byte aligned since it is allocated on 8 * the stack, which must be 16-byte aligned on v8 9 */ 10struct cpu_suspend_ctx { 11 /* 12 * This struct must be kept in sync with 13 * cpu_do_{suspend/resume} in mm/proc.S 14 */ 15 u64 ctx_regs[NR_CTX_REGS]; 16 u64 sp; 17} __aligned(16); 18 19struct sleep_save_sp { 20 phys_addr_t *save_ptr_stash; 21 phys_addr_t save_ptr_stash_phys; 22}; 23 24extern int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)); 25extern void cpu_resume(void); 26#endif 27