SIGSTACK(2) 386BSD Programmer's Manual SIGSTACK(2)
NAME
sigstack - set and/or get signal stack context
SYNOPSIS
#include <sys/signal.h>
struct sigstack {
caddr_t ss_sp;
int ss_onstack;
};
int
sigstack(const struct sigstack *ss, struct sigstack *oss)
DESCRIPTION
Sigstack() allows users to define an alternate stack on which signals are
to be processed. If ss is non-zero, 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 non-zero, the current signal stack state
is returned.
NOTES
Signal stacks are not ``grown'' automatically, as is done for the normal
stack. If the stack overflows unpredictable results may occur.
RETURN VALUES
Upon successful completion, a value of 0 is returned. Otherwise, a value
of -1 is returned and errno is set to indicate the error.
ERRORS
Sigstack() will fail and the signal stack context will remain unchanged
if one of 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)
HISTORY
The sigstack function call appeared in 4.2BSD.
4.2 Berkeley Distribution March 10, 1991 1