Guardian Procedure Calls Reference Manual (G06.25+)

Guardian Procedure Calls (S)
Guardian Procedure Calls Reference Manual522629-013
14-135
SIGACTION_SUPPLANT_ Procedure
You must allocate the buffer for SIGACTION_SUPPLANT_ using the
SIGSAVE_DEF DEFINE as follows:
SIGSAVE_DEF ( signal-buffer );
where signal-buffer is a legal variable name. This buffer must be accessible
to the callers of both SIGACTION_SUPPLANT_ and the associated
SIGACTION_RESTORE_ procedure.
The specified handler is installed as the action for only those nondeferrable signals
that are system generated in response to run-time events. These signals are:
SIGILL
SIGFPE
SIGSEGV
SIGMEMERR
SIGNOMEM
SIGMEMMGR
SIGSTK
SIGLIMIT
The signal handling for other signals remains unchanged.
All parameters are validated. The SIGACTION_SUPPLANT_ procedure returns an
error if any parameter has an invalid value.
If SIGACTION_SUPPLANT_ returns an error, the signal-handling state is not
changed.
All signals, except those for which you cannot install a handler, are blocked.
Deferrable signals that occur while the process is executing privileged code are
deferred until the process exits privileged execution mode. If these signals are not
blocked, they are then delivered to the handler, which is activated at the tip of the
main stack.
Nondeferrable signals are immediately delivered to the specified handler. The
handler executes on the main stack or privileged stack of the calling process
depending on whether the signal occurs in nonprivileged code or privileged code