[parisc-linux] signal.c, etc
David Huggins-Daines
dhd@eradicator.org
17 Dec 2000 14:41:39 -0500
Hi,
Just reading through the archives, I noticed you came upon my rather
hackish IAOQ manipulation in signal.c.
If you guys need any explanation about the intent of that code please
ask me. (I'm back on the parisc-linux list now, BTW)
I freely admit that it is bogus (in fact that's why the comment was
there), not because I didn't know which part of IAOQ was front and
which was back, but because:
(a) There are two different signal exit paths, one from interruptions,
one from system calls. This complicates things *tremendously*.
However, exiting from a signal handler always goes via system
calls, and in that case, the stored IAOQ values are meaningless.
I probably should have removed all the meaningless frobbings of
the stored IAOQ, but ... well ... time passes, you become occupied
elsewhere, etc.
(b) I don't understand what the processor actually does when you
restore IAOQ on exit from an interruption. The HP documentation
is not written in a particularly lucid manner.
(c) Setting iaoq_back to iaoq_front + 4 is *not* the right answer
because you may have taken an interruption in a branch, or an insn
may have been nullified, etc.
(d) I had about ten billion other things to do at the time and was
under lots of pressure to get "more important things" working...
--
David Huggins-Daines - dhd@eradicator.org