x86: x86 i387 user_regset

This revamps the i387 code to be shared across 32-bit, 64-bit,
and 32-on-64.  It does so by consolidating the code in one place
based on the user_regset accessor interfaces.  This switches
32-bit to using the i387_64.h header and 64-bit to using the
i387.c that was previously i387_32.c, but that's what took the
least cleanup in each file.  Here i387.h is stubbed to always
include i387_64.h rather than renaming the file, to keep this
diff smaller and easier to read.

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tento commit je obsažen v:
Roland McGrath
2008-01-30 13:31:50 +01:00
odevzdal Ingo Molnar
rodič b7b71725fb
revize 4421011120
8 změnil soubory, kde provedl 281 přidání a 270 odebrání

Zobrazit soubor

@@ -29,7 +29,6 @@
#include <asm/ia32_unistd.h>
#include <asm/user32.h>
#include <asm/sigcontext32.h>
#include <asm/fpu32.h>
#include <asm/proto.h>
#include <asm/vdso.h>
@@ -258,7 +257,7 @@ static int ia32_restore_sigcontext(struct pt_regs *regs,
if (buf) {
if (!access_ok(VERIFY_READ, buf, sizeof(*buf)))
goto badframe;
err |= restore_i387_ia32(current, buf, 0);
err |= restore_i387_ia32(buf);
} else {
struct task_struct *me = current;
@@ -377,7 +376,7 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
err |= __put_user((u32)regs->flags, &sc->flags);
err |= __put_user((u32)regs->sp, &sc->sp_at_signal);
tmp = save_i387_ia32(current, fpstate, regs, 0);
tmp = save_i387_ia32(fpstate);
if (tmp < 0)
err = -EFAULT;
else {