Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.19 54 lines 1.1 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _ASM_SCS_H 3#define _ASM_SCS_H 4 5#ifdef __ASSEMBLER__ 6#include <asm/asm-offsets.h> 7 8#ifdef CONFIG_SHADOW_CALL_STACK 9 10/* Load init_shadow_call_stack to gp. */ 11.macro scs_load_init_stack 12 la gp, init_shadow_call_stack 13 XIP_FIXUP_OFFSET gp 14.endm 15 16/* Load the per-CPU IRQ shadow call stack to gp. */ 17.macro scs_load_irq_stack tmp 18 load_per_cpu gp, irq_shadow_call_stack_ptr, \tmp 19.endm 20 21/* Load task_scs_sp(current) to gp. */ 22.macro scs_load_current 23 REG_L gp, TASK_TI_SCS_SP(tp) 24.endm 25 26/* Load task_scs_sp(current) to gp, but only if tp has changed. */ 27.macro scs_load_current_if_task_changed prev 28 beq \prev, tp, _skip_scs 29 scs_load_current 30_skip_scs: 31.endm 32 33/* Save gp to task_scs_sp(current). */ 34.macro scs_save_current 35 REG_S gp, TASK_TI_SCS_SP(tp) 36.endm 37 38#else /* CONFIG_SHADOW_CALL_STACK */ 39 40.macro scs_load_init_stack 41.endm 42.macro scs_load_irq_stack tmp 43.endm 44.macro scs_load_current 45.endm 46.macro scs_load_current_if_task_changed prev 47.endm 48.macro scs_save_current 49.endm 50 51#endif /* CONFIG_SHADOW_CALL_STACK */ 52#endif /* __ASSEMBLER__ */ 53 54#endif /* _ASM_SCS_H */