[LMH]Stack Group Switching
Sat Sep 13 19:54:00 2003
Over the past couple days I've been looking at implementing stack group
switching in exploiter. Unfortunately, documentation about this area of
system operation is sparser than I'd like. I just spent about half an hour
looking for the bit that says that a new call frame is pushed on the
regular PDL of the outbound stack group and the final CPU state is
restored from the call frame at the top of the regular PDL of the inbound
stack group. I didn't find it, either, but that's how it works (the code
in kernel/sgdefs.lisp, kernel/sgfctn.lisp,
eh/error-condition-definitions.lisp is unmistakable).
I also found this amusing comment in kernel/sgdefs.lisp:
;;; If this file is changed, it goes without saying that you need to make
a new cold load.
Umm... No. If it went without saying, it wouldn't need saying. And it
obviously did need saying. Along with the list of other files that need
changing as well.
Anyway, I hope you'll excuse my ramblings. I just watched Equilibrium
tonight, and I'm looking at getting the first tests of actual stack-group
switching done this weekend, so I'm in a fairly weird mood...
All programming can be viewed as an exercise.