Browse Source

sh: fix incorrect mcontext_t member naming

while the layouts match, the member member naming expected by software
using mcontext_t omits the sc_ prefix.
master
Ariadne Conill 6 years ago
committed by Rich Felker
parent
commit
db981ffb3e
  1. 13
      arch/sh/bits/signal.h
  2. 4
      arch/sh/pthread_arch.h

13
arch/sh/bits/signal.h

@ -9,7 +9,16 @@
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
typedef int greg_t, gregset_t[16]; typedef int greg_t, gregset_t[16];
typedef int freg_t, fpregset_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 oldmask;
unsigned long sc_regs[16]; unsigned long sc_regs[16];
unsigned long sc_pc, sc_pr, sc_sr; unsigned long sc_pc, sc_pr, sc_sr;
@ -17,7 +26,7 @@ typedef struct sigcontext {
unsigned long sc_fpregs[16]; unsigned long sc_fpregs[16];
unsigned long sc_xfpregs[16]; unsigned long sc_xfpregs[16];
unsigned int sc_fpscr, sc_fpul, sc_ownedfp; unsigned int sc_fpscr, sc_fpul, sc_ownedfp;
} mcontext_t; };
#else #else
typedef struct { typedef struct {
unsigned long __regs[58]; unsigned long __regs[58];

4
arch/sh/pthread_arch.h

@ -8,9 +8,9 @@ static inline uintptr_t __get_tp()
#define TLS_ABOVE_TP #define TLS_ABOVE_TP
#define GAP_ABOVE_TP 8 #define GAP_ABOVE_TP 8
#define MC_PC sc_pc #define MC_PC pc
#ifdef __FDPIC__ #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))) #define CANCEL_GOT (*(uintptr_t *)((char *)__syscall_cp_asm+sizeof(uintptr_t)))
#endif #endif

Loading…
Cancel
Save