Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Apr 2000 22:21:56 -0500 (CDT)
From:      Steve Price <sprice@hiwaay.net>
To:        Doug Rabson <dfr@nlsystems.com>
Cc:        freebsd-alpha@freebsd.org
Subject:   Re: need help porting JDK2 to alpha
Message-ID:  <Pine.OSF.4.21.0004252219180.29534-100000@fly.HiWAAY.net>
In-Reply-To: <Pine.BSF.4.21.0004241232400.62105-100000@salmon.nlsystems.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 24 Apr 2000, Doug Rabson wrote:

# After looking at the code more closely, it seems that jmp_buf is actually
# a struct osigcontext.

I had come to the same conclusion.

#                       There appears to be a bug in the sigmask
# save/restore since the sigset_t is overlayed onto sc_reserved[0-1] as you
# have noticed but the longjmp implementation (actually osigreturn() in the
# kernel) restores the mask from sc->sc_mask. I think that either the setjmp
# code should initialise sc->sc_mask with the first 32 bits of sc_reserved
# or setjmp/longjmp should both start using struct sigcontext. The main
# difficulty with that as far as I can see is that struct sigcontext is 82
# words long and struct osigcontext is 81 words.

I think at least having 32 bits of the signal mask in sc_mask is
much better than the current situation of using a completely
incorrect value.

# 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.

Great.  I'll give these a whirl this weekend when I get back to
my Alpha box.  Thanks for the pointers Doug! :)

-steve



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.OSF.4.21.0004252219180.29534-100000>