Subject: trap frames
To: None <amiga-dev@sun-lamp.cs.berkeley.edu>
From: Tim Newsham <newsham@uhunix.uhcc.Hawaii.Edu>
List: amiga-dev
Date: 09/07/1994 20:17:02
Hi,
I'm going over some things and I came across something I dont fully
understand. Why are the stack frames set up the way they are?
struct frame {
int f_regs[16];
short f_pad;
short f_stackadj;
u_short f_sr;
u_int f_pc;
u_short f_format:4,
f_vector:12;
union F_u {
What is the purpose of the pad and stackadj fields?
If there was just one field I might think that it is used
to make sure other fields are aligned but thats 4 extra bytes.
Another thing is sometimes the usp is saved in f_regs and at
other times the ssp is saved. I'm not so clear as to why
the usp is not always saved. It also seems that if there
is a trap in supervisor mode then the usp gets written in
when the ssp should. I guess this isnt a problem since
we're probably talking about a panic condition (?).
Tim N.
------------------------------------------------------------------------------