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.
ERRORS
sigstack will fail and the signal stack context will remain unchanged if
the following occurs:
[EFAULT] Either ss or oss points to memory that is not a valid part of
the process address space.
SEE ALSO
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.