summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2007-06-13 16:23:59 +0000
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>2007-06-13 16:23:59 +0000
commit23a4b23a9a4a1668950c4c264e9f99d73bf935f6 (patch)
tree27834c993a37c25864c3b6f6d8cbc75e2a704445 /libc
parenta35c1f1a2851f6f8cd36dc9ad04a8d57523aa40e (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.h16
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. */