Line data Source code
1 : /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 : /* Fallback per-CPU frame pointer holder 3 : * 4 : * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. 5 : * Written by David Howells (dhowells@redhat.com) 6 : */ 7 : 8 : #ifndef _ASM_GENERIC_IRQ_REGS_H 9 : #define _ASM_GENERIC_IRQ_REGS_H 10 : 11 : #include <linux/percpu.h> 12 : 13 : /* 14 : * Per-cpu current frame pointer - the location of the last exception frame on 15 : * the stack 16 : */ 17 : DECLARE_PER_CPU(struct pt_regs *, __irq_regs); 18 : 19 32173 : static inline struct pt_regs *get_irq_regs(void) 20 : { 21 32173 : return __this_cpu_read(__irq_regs); 22 : } 23 : 24 154760 : static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) 25 : { 26 154760 : struct pt_regs *old_regs; 27 : 28 75916 : old_regs = __this_cpu_read(__irq_regs); 29 154760 : __this_cpu_write(__irq_regs, new_regs); 30 75916 : return old_regs; 31 : } 32 : 33 : #endif /* _ASM_GENERIC_IRQ_REGS_H */