[LMH]Stack Group Switching

Nyef nyef@softhome.net
Sat Sep 13 19:54:00 2003


Hello all.

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/sg-args-locals-functions.lisp, and 
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.
---------------------------
Alastair Bridgewater
e-mail: nyef@softhome.net