SIGSTACK(2) BSD SIGSTACK(2)
NAME
sigstack - set and/or get signal stack context
SYNOPSIS
#include <signal.h>
struct sigstack {
caddr_t ss_sp;
int ss_onstack;
};
sigstack(ss, oss);
struct sigstack *ss, *oss;
DESCRIPTION
sigstack allows users to define an alternate stack on which signals are
to be processed. If ss is nonzero, it specifies a "signal stack" on which
to deliver signals and tells the system if the process is currently
executing on that stack. When a signal's action indicates its handler
should execute on the signal stack (specified with a sigvec(2) call), the
system checks to see if the process is currently executing on that stack.
If the process is not currently executing on the signal stack, the system
arranges a switch to the signal stack for the duration of the signal
handler's execution. If oss is nonzero, the current signal stack state
is returned.
sigvec(2), setjmp(3)
DIAGNOSTICS
A successful call returns 0. A failed call returns -1 and sets errno as
indicated under "Errors."
NOTES
Signal stacks are not "grown" automatically. If the stack overflows
unpredictable results may occur.