cvs commit: src/sys/kern kern_context.c

Daniel Eischen eischen at pcnet1.pcnet.com
Tue Apr 1 17:05:04 PST 2003


On Tue, 1 Apr 2003, Daniel Eischen wrote:

> On Tue, 1 Apr 2003, Jake Burkholder wrote:
> > Yes, I see what you mean.  The problem on sparc64 is that the arguments
> > setup in makecontext get clobbered.  They're passed in the same registers
> > as the return value for the system call, so when syscall copies td_retval
> > into the registers it clobbers the arguments that were set.  I can hack
> > around it by just copying the registers that would be clobbered into
> > td_retval if that would work better.  execve has the same problem, we
> > use the above hack there.
> 
> I think the changes you made are correct; swapcontext() and
> setcontext() now return EJUSTRETURN if there were no errors.
> But we just need to fix getcontext() so that it clears the

and swapcontext() too.

> return value registers in the mcontext.  This needs to be
> an option, though, because other uses of get_mcontext don't
> want that behaviour.
> 
> This would still work on sparc64, right?  Unless I am
> misunderstanding something.

-- 
Dan Eischen



More information about the cvs-all mailing list