cvs commit: src/lib/libpthread/arch/ia64/ia64 context.S

Daniel Eischen eischen at vigrid.com
Fri Jun 27 05:07:47 PDT 2003


On Fri, 27 Jun 2003, Daniel Eischen wrote:

> On Thu, 26 Jun 2003, Marcel Moolenaar wrote:
> > marcel      2003/06/26 23:15:13 PDT
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >     lib/libpthread/arch/ia64/ia64 context.S 
> >   Log:
> >   Implement _ia64_save_context() and _ia64_restore_context(). Both
> >   functions are derived from the swapctx() and restorectx() (resp)
> >   from sys/ia64/ia64/context.s. The code is expected to be 99%
> >   correct, but has not yet been tested.
> >   
> >   Note that with these functions operating on mcontext_t, we also
> >   created the foundation upon which we can implement getcontext(2)
> >   and setcontext(2) replacements. It's not guaranteed that the use
> >   of these syscalls and _ia64_{save|restore}_context() on the same
> >   uicontext_t is actually going to work. Replacing the syscalls is
> >   now trivially achieved.
> 
> For libkse anyways, [gs]etcontext(2) (or library versions of them)
> are only used when delivering signals, and even then only under
> certain circumstances (when signals are deferred due to being
> in critical regions, I think).  So there shouldn't really be
> any impact for not having userland versions of these syscalls.

Blech.  I really should have my coffee before replying to email.
We _do_ now use getcontext() (THR_GETCONTEXT) for the common case
of switching to another thread without entering the UTS scheduler
(e.g., the current thread yields in some way).  Sorry for the
confusion.

-- 
Dan Eischen



More information about the cvs-all mailing list