diff options
| -rw-r--r-- | arch/sh/bits/signal.h | 13 | ||||
| -rw-r--r-- | arch/sh/pthread_arch.h | 4 | 
2 files changed, 13 insertions, 4 deletions
| diff --git a/arch/sh/bits/signal.h b/arch/sh/bits/signal.h index 160311fa..d0b14828 100644 --- a/arch/sh/bits/signal.h +++ b/arch/sh/bits/signal.h @@ -9,7 +9,16 @@  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)  typedef int greg_t, gregset_t[16];  typedef int freg_t, fpregset_t[16]; -typedef struct sigcontext { +typedef struct { +	unsigned long oldmask; +	unsigned long gregs[16]; +	unsigned long pc, pr, sr; +	unsigned long gbr, mach, macl; +	unsigned long fpregs[16]; +	unsigned long xfpregs[16]; +	unsigned int fpscr, fpul, ownedfp; +} mcontext_t; +struct sigcontext {  	unsigned long oldmask;  	unsigned long sc_regs[16];  	unsigned long sc_pc, sc_pr, sc_sr; @@ -17,7 +26,7 @@ typedef struct sigcontext {  	unsigned long sc_fpregs[16];  	unsigned long sc_xfpregs[16];  	unsigned int sc_fpscr, sc_fpul, sc_ownedfp; -} mcontext_t; +};  #else  typedef struct {  	unsigned long __regs[58]; diff --git a/arch/sh/pthread_arch.h b/arch/sh/pthread_arch.h index 0fcf70d2..199c2d55 100644 --- a/arch/sh/pthread_arch.h +++ b/arch/sh/pthread_arch.h @@ -8,9 +8,9 @@ static inline uintptr_t __get_tp()  #define TLS_ABOVE_TP  #define GAP_ABOVE_TP 8 -#define MC_PC sc_pc +#define MC_PC pc  #ifdef __FDPIC__ -#define MC_GOT sc_regs[12] +#define MC_GOT gregs[12]  #define CANCEL_GOT (*(uintptr_t *)((char *)__syscall_cp_asm+sizeof(uintptr_t)))  #endif | 
