18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef _ASM_SCS_H 38c2ecf20Sopenharmony_ci#define _ASM_SCS_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#ifdef __ASSEMBLY__ 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include <asm/asm-offsets.h> 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#ifdef CONFIG_SHADOW_CALL_STACK 108c2ecf20Sopenharmony_ci scs_sp .req x18 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci .macro scs_load_current 138c2ecf20Sopenharmony_ci get_current_task scs_sp 148c2ecf20Sopenharmony_ci ldr scs_sp, [scs_sp, #TSK_TI_SCS_SP] 158c2ecf20Sopenharmony_ci .endm 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci .macro scs_save tsk, tmp 188c2ecf20Sopenharmony_ci str scs_sp, [\tsk, #TSK_TI_SCS_SP] 198c2ecf20Sopenharmony_ci .endm 208c2ecf20Sopenharmony_ci#else 218c2ecf20Sopenharmony_ci .macro scs_load_current 228c2ecf20Sopenharmony_ci .endm 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci .macro scs_save tsk, tmp 258c2ecf20Sopenharmony_ci .endm 268c2ecf20Sopenharmony_ci#endif /* CONFIG_SHADOW_CALL_STACK */ 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci#endif /* __ASSEMBLY __ */ 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#endif /* _ASM_SCS_H */ 31