From d31982f115dfa8bea704411c3b17882512341938 Mon Sep 17 00:00:00 2001 From: Jeremy Fitzhardinge Date: Thu, 7 Dec 2006 02:14:03 +0100 Subject: [PATCH] --- yaml --- r: 43024 b: refs/heads/master c: 70463daca852db396ce17f179d2404b257ba0f66 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/asm-i386/irq_regs.h | 28 +++++++++++++++++++++++++++- trunk/include/asm-i386/pda.h | 1 + 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 7226a5576d14..e513367d4774 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ec7fcaabbfb3c5bd5189f857b6ac7bb9745ef291 +refs/heads/master: 70463daca852db396ce17f179d2404b257ba0f66 diff --git a/trunk/include/asm-i386/irq_regs.h b/trunk/include/asm-i386/irq_regs.h index 3dd9c0b70270..a1b3f7f594a2 100644 --- a/trunk/include/asm-i386/irq_regs.h +++ b/trunk/include/asm-i386/irq_regs.h @@ -1 +1,27 @@ -#include +/* + * Per-cpu current frame pointer - the location of the last exception frame on + * the stack, stored in the PDA. + * + * Jeremy Fitzhardinge + */ +#ifndef _ASM_I386_IRQ_REGS_H +#define _ASM_I386_IRQ_REGS_H + +#include + +static inline struct pt_regs *get_irq_regs(void) +{ + return read_pda(irq_regs); +} + +static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) +{ + struct pt_regs *old_regs; + + old_regs = read_pda(irq_regs); + write_pda(irq_regs, new_regs); + + return old_regs; +} + +#endif /* _ASM_I386_IRQ_REGS_H */ diff --git a/trunk/include/asm-i386/pda.h b/trunk/include/asm-i386/pda.h index 08a35c478af2..2ba2736aa109 100644 --- a/trunk/include/asm-i386/pda.h +++ b/trunk/include/asm-i386/pda.h @@ -15,6 +15,7 @@ struct i386_pda int cpu_number; struct task_struct *pcurrent; /* current process */ + struct pt_regs *irq_regs; }; extern struct i386_pda *_cpu_pda[];