From owner-freebsd-current Wed Mar 22 5: 5:12 2000 Delivered-To: freebsd-current@freebsd.org Received: from pcnet1.pcnet.com (pcnet1.pcnet.com [204.213.232.3]) by hub.freebsd.org (Postfix) with ESMTP id 3959A37B5FC for ; Wed, 22 Mar 2000 05:05:09 -0800 (PST) (envelope-from eischen@vigrid.com) Received: (from eischen@localhost) by pcnet1.pcnet.com (8.8.7/PCNet) id IAA16055; Wed, 22 Mar 2000 08:04:37 -0500 (EST) Date: Wed, 22 Mar 2000 08:04:37 -0500 (EST) From: Daniel Eischen To: Arun Sharma Cc: Marcel Moolenaar , Peter Wemm , current@FreeBSD.ORG Subject: Re: ucontext In-Reply-To: <20000321225432.A4533@sharmas.dhs.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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 > > > > > > 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 eischen@vigrid.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message