There are some additional limitations. Currently,
software interrupts are not available directly from COBOL
or on remote files. If the
process contains privileged code,
the interrupt handler must be privileged
to handle interrupts from it,
or else an ABORT 22, Invalid stack marker, will
occur.
If the code you want to interrupt is privileged, then
your interrupt handling procedure must also be executing
in Privileged Mode. If the code to be interrupted is
non-privileged, then your interrupt handler can be
either privileged or non-privileged.
The following restrictions apply to Compatibility Mode
code only. In CM,
your interrupt handler may reside in any system Segment
Library. The hierarchy of Segment Libraries is as follows:
PROG = User program segments
GSL = Group segment libraries
PSL = Public segment libraries
SSL = System segment library
A routine on one level can call routines on that level
or below. However, this distinction does not apply to
software interrupts. So your interrupt handler can
reside in any library and interrupt code in any other
library.
There is one exception: code
in the SSL (System Segment Library) cannot
be interrupted. The reason is that MPE/iX routines cannot be
interrupted, and the system cannot distinguish between the
MPE/iX routines and the other routines residing in the SSL.