On Tue, 21 Mar 2000, Arun Sharma wrote:
> On Tue, Sep 07, 1999 at 01:21:59PM +0200, Marcel Moolenaar wrote:
> > Peter Wemm wrote:
> > > 
> > > Before getting too far here, can we consider some other standard interfaces?
> > > 
> > >      #include <ucontext.h>
> > > 
> > >      int getcontext(ucontext_t *ucp);
> > >      int setcontext(const ucontext_t *ucp);
> > >      void makecontext(ucontext_t *ucp, (void *func)(), int argc, ...);
> > >      int swapcontext(ucontext_t *oucp, const ucontext_t *ucp);
> > > 
> > > http://www.opengroup.org/onlinepubs/007908799/xsh/ucontext.h.html
> > > 
> > > setjmp,longjmp,sigreturn,etc can all be done with this interface and it can
> > > be used for libc_r and future kernel-assisted threading.
> > 
> > We're at a point where the discussion, altough meaningful and important,
> > has no direct impact on the sigset_t change. I agree with Peter that we
> > should as well consider the ucontext interface, but prefer to stay focussed
> > on changing sigset_t. So, here's where I shut up and let you discuss the
> > matter further :-)
> 
> Is anyone working on this ? Porting JDKs to FreeBSD would be a lot easier
> if these routines are implemented.

I had them implemented and working for i386, and even had a hacked up
libc_r that used them instead of setjmp/longjmp.  This was a few months
ago under 4.0-current.  At the time, I thought they'd be better off
implemented as syscalls, but now I'm leaning towards library routines
similar to setjmp/longjmp (which make a syscall to change the signal
mask).

Ucontext needs to change also.  We need a flags word to indicate whether
the register state and FP state are valid, and probably a revision word
to identify future changes within ucontext_t.

Dan Eischen
[EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to