/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2021 Western Digital Corporation or its affiliates. * Copyright (c) 2022 Ventana Micro Systems Inc. */ #ifndef _ASM_RISCV_SUSPEND_H #define _ASM_RISCV_SUSPEND_H #include <asm/ptrace.h> struct suspend_context { /* Saved and restored by low-level functions */ struct pt_regs regs; /* Saved and restored by high-level functions */ unsigned long scratch; unsigned long tvec; unsigned long ie; #ifdef CONFIG_MMU unsigned long satp; #endif }; /* Low-level CPU suspend entry function */ int __cpu_suspend_enter(struct suspend_context *context); /* High-level CPU suspend which will save context and call finish() */ int cpu_suspend(unsigned long arg, int (*finish)(unsigned long arg, unsigned long entry, unsigned long context)); /* Low-level CPU resume entry function */ int __cpu_resume_enter(unsigned long hartid, unsigned long context); #endif