diff options
Diffstat (limited to 'kernel/arch/arm64/include/asm/suspend.h')
-rw-r--r-- | kernel/arch/arm64/include/asm/suspend.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/kernel/arch/arm64/include/asm/suspend.h b/kernel/arch/arm64/include/asm/suspend.h new file mode 100644 index 000000000..003802f58 --- /dev/null +++ b/kernel/arch/arm64/include/asm/suspend.h @@ -0,0 +1,26 @@ +#ifndef __ASM_SUSPEND_H +#define __ASM_SUSPEND_H + +#define NR_CTX_REGS 11 + +/* + * 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 |