Subject: Re: missing pubassym.h macros
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Castor Fu <castor@geocast.net>
List: port-mips
Date: 01/29/1999 21:06:55
> > Also, do you remember why _JBLEN got bumped from 83 to 87?
> > Did struct sigcontext grow by 16 bytes?
>
> Um, yes! The new signal masks!
>
> ----------------------------
> revision 1.2
> date: 1998/09/16 23:15:08; author: thorpej; state: Exp; lines: +2 -2
> Need 87 longs for a jmp_buf now (we use sigcontext, which grew).
> ----------------------------
I asked this before, but I don't think I've seen an answer. sigcontext
grew with the version change, but I don't think the current one's 87
longs long.
Should (_JBLEN * sizeof(long)) == sizeof(struct sigcontext) or not?
Let's count:
Taken from <mips/signal.h>
struct sigcontext {
1 int sc_onstack; /* sigstack state to restore */
1 int __sc_mask13; /* signal mask to restore (old style) */
1 mips_reg_t sc_pc; /* pc at time of signal */
32 mips_reg_t sc_regs[32]; /* processor regs 0 to 31 */
2 mips_reg_t mullo, mulhi;/* mullo and mulhi registers... */
1 int sc_fpused; /* fp has been used */
33 int sc_fpregs[33]; /* fp regs 0 to 31 and csr */
1 int sc_fpc_eir; /* floating point exception instruction reg */
8 int sc_xxx[8]; /* XXX reserved */
4 sigset_t sc_mask; /* signal mask to restore (new style) */
};
echo 1 + 1 + 32 + 2 + 1 + 33 + 1 + 8 + 4 | bc
83
As for the 'n32' question, the toolchain needs some serious work before
that can really start. These interim measures will let us get going.
It's not clear to me that a userland using the 64-bit clean stuff will be
distributed externally before 'n32' exists, but it's valuable to me to
get this stuff checked in to reduce the version control headaches.
-castor