From owner-freebsd-alpha Sat Apr 29 11:22: 0 2000 Delivered-To: freebsd-alpha@freebsd.org Received: from mail.hiwaay.net (fly.HiWAAY.net [208.147.154.56]) by hub.freebsd.org (Postfix) with ESMTP id 2E32D37B838 for ; Sat, 29 Apr 2000 11:21:58 -0700 (PDT) (envelope-from sprice@hiwaay.net) Received: from localhost (sprice@localhost) by mail.hiwaay.net (8.10.1/8.10.1) with ESMTP id e3TILp400701; Sat, 29 Apr 2000 13:21:52 -0500 (CDT) Date: Sat, 29 Apr 2000 13:21:51 -0500 (CDT) From: Steve Price To: Doug Rabson Cc: freebsd-alpha@freebsd.org Subject: Re: need help porting JDK2 to alpha In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On Mon, 24 Apr 2000, Doug Rabson wrote: # You can initialise the pc by setting sc->sc_pc. What are death_func and # arg used for? If these are intended to be arguments to some function # located at *pc, you can initialise sc->sc_regs[R_A0..R-A5] with up to six # argument values. If you need the function at *pc to return to some # specific location, set sc->sc_regs[R_RA] to a suitable return address. Oops, I was re-reading your response and just noticed there was a question in there. The idea is to setup the sigjmp_buf structure so that on a call to siglongjmp the function death_func is called with the arguments pc and arg. The code I have now looks like this and appears to almost work. uc->jmpbuf->_sjb[2] = death_func; /* sc_pc */ uc->jmpbuf->_sjb[20] = pc; /* sc_regs[R_A0] */ uc->jmpbuf->_sjb[21] = arg; /* sc_regs[R_A1] */ uc->jmpbuf->_sjb[34] = sp; /* sc_regs[R_SP] */ uc->jmpbuf->_sjb[35] = 0xACEDBADD; /* magic number for longjmp */ I don't think we need to set sc_regs[R_RA]. -steve To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message