From owner-svn-src-head@FreeBSD.ORG Tue Mar 6 08:10:49 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 460A7106566B; Tue, 6 Mar 2012 08:10:49 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 189518FC1A; Tue, 6 Mar 2012 08:10:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q268AmII027066; Tue, 6 Mar 2012 08:10:48 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q268Amin027064; Tue, 6 Mar 2012 08:10:48 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201203060810.q268Amin027064@svn.freebsd.org> From: Juli Mallett Date: Tue, 6 Mar 2012 08:10:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232586 - head/sys/mips/mips X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 08:10:49 -0000 Author: jmallett Date: Tue Mar 6 08:10:48 2012 New Revision: 232586 URL: http://svn.freebsd.org/changeset/base/232586 Log: Make the native sigreturn just wrap set_mcontext, much as freebsd32_sigreturn does. Modified: head/sys/mips/mips/pm_machdep.c Modified: head/sys/mips/mips/pm_machdep.c ============================================================================== --- head/sys/mips/mips/pm_machdep.c Tue Mar 6 08:02:10 2012 (r232585) +++ head/sys/mips/mips/pm_machdep.c Tue Mar 6 08:10:48 2012 (r232586) @@ -216,51 +216,22 @@ cpu_thread_siginfo(int sig, u_long code, int sys_sigreturn(struct thread *td, struct sigreturn_args *uap) { - struct trapframe *regs; - ucontext_t *ucp; ucontext_t uc; int error; - ucp = &uc; - error = copyin(uap->sigcntxp, &uc, sizeof(uc)); if (error != 0) return (error); - regs = td->td_frame; - -/* #ifdef DEBUG */ - if (ucp->uc_mcontext.mc_regs[ZERO] != UCONTEXT_MAGIC) { - printf("sigreturn: pid %d, ucp %p\n", td->td_proc->p_pid, ucp); - printf(" old sp %p ra %p pc %p\n", - (void *)(intptr_t)regs->sp, (void *)(intptr_t)regs->ra, (void *)(intptr_t)regs->pc); - printf(" new sp %p ra %p pc %p z %p\n", - (void *)(intptr_t)ucp->uc_mcontext.mc_regs[SP], - (void *)(intptr_t)ucp->uc_mcontext.mc_regs[RA], - (void *)(intptr_t)ucp->uc_mcontext.mc_regs[PC], - (void *)(intptr_t)ucp->uc_mcontext.mc_regs[ZERO]); - return EINVAL; - } -/* #endif */ - - bcopy((const void *)&ucp->uc_mcontext.mc_regs[1], (void *)®s->ast, - sizeof(ucp->uc_mcontext.mc_regs) - sizeof(register_t)); - - if (ucp->uc_mcontext.mc_fpused) - bcopy((const void *)ucp->uc_mcontext.mc_fpregs, - (void *)&td->td_frame->f0, - sizeof(ucp->uc_mcontext.mc_fpregs)); - - regs->pc = ucp->uc_mcontext.mc_pc; - regs->mullo = ucp->uc_mcontext.mullo; - regs->mulhi = ucp->uc_mcontext.mulhi; + error = set_mcontext(td, &uc.uc_mcontext); + if (error != 0) + return (error); - kern_sigprocmask(td, SIG_SETMASK, &ucp->uc_sigmask, NULL, 0); + kern_sigprocmask(td, SIG_SETMASK, &uc.uc_sigmask, NULL, 0); - return(EJUSTRETURN); + return (EJUSTRETURN); } - int ptrace_set_pc(struct thread *td, unsigned long addr) {