xref: /openbmc/linux/arch/loongarch/include/asm/irq_regs.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1*0603839bSHuacai Chen /* SPDX-License-Identifier: GPL-2.0 */
2*0603839bSHuacai Chen /*
3*0603839bSHuacai Chen  * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
4*0603839bSHuacai Chen  */
5*0603839bSHuacai Chen #ifndef __ASM_IRQ_REGS_H
6*0603839bSHuacai Chen #define __ASM_IRQ_REGS_H
7*0603839bSHuacai Chen 
8*0603839bSHuacai Chen #define ARCH_HAS_OWN_IRQ_REGS
9*0603839bSHuacai Chen 
10*0603839bSHuacai Chen #include <linux/thread_info.h>
11*0603839bSHuacai Chen 
get_irq_regs(void)12*0603839bSHuacai Chen static inline struct pt_regs *get_irq_regs(void)
13*0603839bSHuacai Chen {
14*0603839bSHuacai Chen 	return current_thread_info()->regs;
15*0603839bSHuacai Chen }
16*0603839bSHuacai Chen 
set_irq_regs(struct pt_regs * new_regs)17*0603839bSHuacai Chen static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
18*0603839bSHuacai Chen {
19*0603839bSHuacai Chen 	struct pt_regs *old_regs;
20*0603839bSHuacai Chen 
21*0603839bSHuacai Chen 	old_regs = get_irq_regs();
22*0603839bSHuacai Chen 	current_thread_info()->regs = new_regs;
23*0603839bSHuacai Chen 
24*0603839bSHuacai Chen 	return old_regs;
25*0603839bSHuacai Chen }
26*0603839bSHuacai Chen 
27*0603839bSHuacai Chen #endif /* __ASM_IRQ_REGS_H */
28