[MIPS] Fix struct sigcontext for N32 userland

The kernel use 64-bit for sc_regs[0], and both N32/N64 userland
expects it was 64-bit.  But size of 'long' on N32 is actually 32-bit.
So this definition make some confusion.  Use __u32 and __u64 for
N32/N64 sigcontext to get rid of this confusion.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Atsushi Nemoto 2007-02-18 00:12:57 +09:00 committed by Ralf Baechle
parent f49a747c4a
commit 269dd2b252

View File

@ -42,6 +42,7 @@ struct sigcontext {
#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 #if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
#include <linux/posix_types.h>
/* /*
* Keep this struct definition in sync with the sigcontext fragment * Keep this struct definition in sync with the sigcontext fragment
* in arch/mips/tools/offset.c * in arch/mips/tools/offset.c
@ -53,27 +54,25 @@ struct sigcontext {
* entries, add sc_dsp and sc_reserved for padding. No prisoners. * entries, add sc_dsp and sc_reserved for padding. No prisoners.
*/ */
struct sigcontext { struct sigcontext {
unsigned long sc_regs[32]; __u64 sc_regs[32];
unsigned long sc_fpregs[32]; __u64 sc_fpregs[32];
unsigned long sc_mdhi; __u64 sc_mdhi;
unsigned long sc_hi1; __u64 sc_hi1;
unsigned long sc_hi2; __u64 sc_hi2;
unsigned long sc_hi3; __u64 sc_hi3;
unsigned long sc_mdlo; __u64 sc_mdlo;
unsigned long sc_lo1; __u64 sc_lo1;
unsigned long sc_lo2; __u64 sc_lo2;
unsigned long sc_lo3; __u64 sc_lo3;
unsigned long sc_pc; __u64 sc_pc;
unsigned int sc_fpc_csr; __u32 sc_fpc_csr;
unsigned int sc_used_math; __u32 sc_used_math;
unsigned int sc_dsp; __u32 sc_dsp;
unsigned int sc_reserved; __u32 sc_reserved;
}; };
#ifdef __KERNEL__ #ifdef __KERNEL__
#include <linux/posix_types.h>
struct sigcontext32 { struct sigcontext32 {
__u32 sc_regmask; /* Unused */ __u32 sc_regmask; /* Unused */
__u32 sc_status; /* Unused */ __u32 sc_status; /* Unused */