Guardian Procedure Calls Reference Manual

length
input
INT:value
specifies the size in bytes of the buffer indicated by signal-buffer.
Returned Value
INT(32)
Outcome of the call:
Successful outcome.0D
An error occurred. The reason for the error is given in the errno variable.-1D
FE_EFAULT
The address in signal-buffer is out of bounds.
FE_EINVAL
SIG_IGN or SIG_ERR is passed to the handler.
FE_ERANGE
length is less than the minimum required.
Use the ERRNO_GET_ procedure to obtain the value of errno in a Guardian process.
Considerations
POSIX.1 compliance
This procedure is an extension to the POSIX.1 standard. A similar effect can be achieved
while maintaining compliance with the POSIX.1 standard by calling the SIGPROCMASK_
procedure and the SIGACTION_ procedure for each signal. However, SIGACTION_SUPPLANT_
also establishes a state in which a deferrable signal can be blocked but the same signal will
invoke the handler if generated as nondeferrable.
Calling considerations
You must allocate the buffer for SIGACTION_SUPPLANT_ using the SIGSAVE_DEF DEFINE
as follows:
SIGSAVE_DEF ( signal-buffer );
where signal-buffer is a valid 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.
SIGACTION_SUPPLANT_ Procedure 1369