blob: d82250b1debb8ff06f00799dceb91e30596a35e5 [file] [log] [blame]
Brian Gerstd650a512009-01-21 17:26:06 +09001/*
2 * Per-cpu current frame pointer - the location of the last exception frame on
3 * the stack, stored in the per-cpu area.
4 *
5 * Jeremy Fitzhardinge <jeremy@goop.org>
6 */
7#ifndef _ASM_X86_IRQ_REGS_H
8#define _ASM_X86_IRQ_REGS_H
9
10#include <asm/percpu.h>
11
12#define ARCH_HAS_OWN_IRQ_REGS
13
14DECLARE_PER_CPU(struct pt_regs *, irq_regs);
15
16static inline struct pt_regs *get_irq_regs(void)
17{
Alex Shic6ae41e2012-05-11 15:35:27 +080018 return this_cpu_read(irq_regs);
Brian Gerstd650a512009-01-21 17:26:06 +090019}
20
21static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
22{
23 struct pt_regs *old_regs;
24
25 old_regs = get_irq_regs();
Alex Shic6ae41e2012-05-11 15:35:27 +080026 this_cpu_write(irq_regs, new_regs);
Brian Gerstd650a512009-01-21 17:26:06 +090027
28 return old_regs;
29}
30
31#endif /* _ASM_X86_IRQ_REGS_32_H */