diff options
author | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2007-06-13 16:23:59 +0000 |
---|---|---|
committer | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2007-06-13 16:23:59 +0000 |
commit | 23a4b23a9a4a1668950c4c264e9f99d73bf935f6 (patch) | |
tree | 27834c993a37c25864c3b6f6d8cbc75e2a704445 /libc | |
parent | a35c1f1a2851f6f8cd36dc9ad04a8d57523aa40e (diff) |
Carmelo AMOROSO <carmelo.amoroso@st.com> writes:
Hi All,
this patch fixes a mismatch in ucontext struct between uClibc and kernel.
In this way a signal handler installed by sigaction can access
to the whole machine state correctly.
This can be applied both to trunk and nptl branch
Diffstat (limited to 'libc')
-rw-r--r-- | libc/sysdeps/linux/sh/sys/ucontext.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libc/sysdeps/linux/sh/sys/ucontext.h b/libc/sysdeps/linux/sh/sys/ucontext.h index 78729c48f..e909f35bb 100644 --- a/libc/sysdeps/linux/sh/sys/ucontext.h +++ b/libc/sysdeps/linux/sh/sys/ucontext.h @@ -87,13 +87,25 @@ typedef freg_t fpregset_t[NFPREG]; /* Context to describe whole processor state. */ typedef struct { + unsigned int oldmask; + + /* CPU registers */ gregset_t gregs; + unsigned int pc; + unsigned int pr; + unsigned int sr; + unsigned int gbr; + unsigned int mach; + unsigned int macl; + +#ifdef __CONFIG_SH4__ + /* FPU registers */ fpregset_t fpregs; fpregset_t xfpregs; unsigned int fpscr; unsigned int fpul; - unsigned int macl; - unsigned int mach; + unsigned int ownedfp; +#endif } mcontext_t; /* Userlevel context. */ |