GNU Linux-libre 4.19.286-gnu1
[releases.git] / arch / x86 / include / asm / irq_regs.h
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
17 static inline struct pt_regs *get_irq_regs(void)
18 {
19         return this_cpu_read(irq_regs);
20 }
21
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 */