On Tue, Oct 19, 2021 at 11:45 AM Warner Losh <i...@bsdimp.com> wrote: > > Update ucontext to implement sigreturn. > > Signed-off-by: Stacey Son <s...@freebsd.org> > Signed-off-by: Warner Losh <i...@bsdimp.com> > --- > bsd-user/arm/target_arch_signal.h | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/bsd-user/arm/target_arch_signal.h > b/bsd-user/arm/target_arch_signal.h > index 1d051af9ae..7da68c727c 100644 > --- a/bsd-user/arm/target_arch_signal.h > +++ b/bsd-user/arm/target_arch_signal.h > @@ -232,4 +232,22 @@ static inline abi_long set_mcontext(CPUARMState *regs, > target_mcontext_t *mcp, > return err; > } > > +/* Compare to arm/arm/machdep.c sys_sigreturn() */ > +static inline abi_long get_ucontext_sigreturn(CPUARMState *regs, > + abi_ulong target_sf, abi_ulong *target_uc) > +{ > + uint32_t cpsr = cpsr_read(regs); > + > + *target_uc = 0; > + > + if ((cpsr & CPSR_M) != ARM_CPU_MODE_USR || > + (cpsr & (CPSR_I | CPSR_F)) != 0) { > + return -TARGET_EINVAL; > + } > + > + *target_uc = target_sf; > + > + return 0; > +} > + > #endif /* !_TARGET_ARCH_SIGNAL_H_ */ > -- > 2.32.0 >
Reviewed-by: Kyle Evans <kev...@freebsd.org>