Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sigvec(2)

setjmp(3)

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.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026