1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Per-cpu current frame pointer - the location of the last exception frame on
4  * the stack, stored in the per-cpu area.
5  *
6  * Jeremy Fitzhardinge <jeremy@goop.org>
7  */
8 #ifndef _ASM_X86_IRQ_REGS_H
9 #define _ASM_X86_IRQ_REGS_H
10 
11 #include <asm/percpu.h>
12 
13 #define ARCH_HAS_OWN_IRQ_REGS
14 
15 DECLARE_PER_CPU(struct pt_regs *, irq_regs);
16 
get_irq_regs(void)17 static inline struct pt_regs *get_irq_regs(void)
18 {
19 	return this_cpu_read(irq_regs);
20 }
21 
set_irq_regs(struct pt_regs * new_regs)22 static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
23 {
24 	struct pt_regs *old_regs;
25 
26 	old_regs = get_irq_regs();
27 	this_cpu_write(irq_regs, new_regs);
28 
29 	return old_regs;
30 }
31 
32 #endif /* _ASM_X86_IRQ_REGS_32_H */
33