1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 27d12e780SDavid Howells /* Fallback per-CPU frame pointer holder 37d12e780SDavid Howells * 47d12e780SDavid Howells * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. 57d12e780SDavid Howells * Written by David Howells (dhowells@redhat.com) 67d12e780SDavid Howells */ 77d12e780SDavid Howells 87d12e780SDavid Howells #ifndef _ASM_GENERIC_IRQ_REGS_H 97d12e780SDavid Howells #define _ASM_GENERIC_IRQ_REGS_H 107d12e780SDavid Howells 117d12e780SDavid Howells #include <linux/percpu.h> 127d12e780SDavid Howells 137d12e780SDavid Howells /* 147d12e780SDavid Howells * Per-cpu current frame pointer - the location of the last exception frame on 157d12e780SDavid Howells * the stack 167d12e780SDavid Howells */ 177d12e780SDavid Howells DECLARE_PER_CPU(struct pt_regs *, __irq_regs); 187d12e780SDavid Howells get_irq_regs(void)197d12e780SDavid Howellsstatic inline struct pt_regs *get_irq_regs(void) 207d12e780SDavid Howells { 21909ea964SChristoph Lameter return __this_cpu_read(__irq_regs); 227d12e780SDavid Howells } 237d12e780SDavid Howells set_irq_regs(struct pt_regs * new_regs)247d12e780SDavid Howellsstatic inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) 257d12e780SDavid Howells { 26909ea964SChristoph Lameter struct pt_regs *old_regs; 277d12e780SDavid Howells 28909ea964SChristoph Lameter old_regs = __this_cpu_read(__irq_regs); 29909ea964SChristoph Lameter __this_cpu_write(__irq_regs, new_regs); 307d12e780SDavid Howells return old_regs; 317d12e780SDavid Howells } 327d12e780SDavid Howells 337d12e780SDavid Howells #endif /* _ASM_GENERIC_IRQ_REGS_H */ 34