Guardian Procedure Calls Reference Manual (G06.25+)
Guardian Procedure Calls (S)
Guardian Procedure Calls Reference Manual—522629-013
14-129
SIGACTION_INIT_ Procedure
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
and on whether the signal handler for that signal is installed by a nonprivileged
caller or privileged caller of SIGACTION_INIT_ as follows:
•
Signal mask and nondeferrable signals
Before a signal handler is entered, a new signal mask is installed. This mask is
formed from the union of the current signal mask and the signal being delivered. If
a nondeferrable signal occurs and is blocked, the process abnormally terminates.
Handler Considerations
•
handler must be one of the following:
•
The address of an untyped native procedure that accepts the following three
parameters. These parameters are passed to the handler by the system when
the handler is invoked to catch a signal:
•
SIGNUM
An INT(32) numerical value indicating the signal that caused the handler to
be invoked.
•
SIGINFO
A pointer whose value is currently NULL.
•
UCONTEXT
If a
nondeferrable
signal occurs
in...
And the signal handler for
that signal was installed by...
Then the specified handler is
activated at...
nonprivileged
code
a nonprivileged or
privileged caller of
SIGACTION_INIT_
the tip of the main stack
(when the signal was
generated)
privileged code a nonprivileged caller of
SIGACTION_INIT_
the tip of the main stack
(when the process entered
privileged mode)
privileged code a privileged caller of
SIGACTION_INIT_
the tip of the privileged
stack
Note. Abnormally terminating a process when a nondeferrable signal is blocked is an
extension to the POSIX.1 standard. According to the POSIX.1 standard, a blocked
nondeferrable signal has an undefined outcome.