From 23a4b23a9a4a1668950c4c264e9f99d73bf935f6 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Wed, 13 Jun 2007 16:23:59 +0000 Subject: Carmelo AMOROSO 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 --- libc/sysdeps/linux/sh/sys/ucontext.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'libc') 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. */ -- cgit v1.2.3