|
|
1.1 root 1: .TH SIGSTACK 2 "15 June 1983"
2: .UC 4
3: .SH NAME
4: sigstack \- set and/or get signal stack context
5: .SH SYNOPSIS
6: .nf
7: .B #include <signal.h>
8: .PP
9: .B struct sigstack {
10: .B caddr_t ss_sp;
11: .B int ss_onstack;
12: .B };
13: .PP
14: .B sigstack(ss, oss);
15: .B struct sigstack *ss, *oss;
16: .SH DESCRIPTION
17: .I Sigstack
18: allows users to define an alternate stack on which signals
19: are to be processed. If
20: .I ss
21: is non-zero,
22: it specifies a
23: .I "signal stack"
24: on which to deliver signals
25: and tells the system if the process is currently executing
26: on that stack. When a signal's action indicates its handler
27: should execute on the signal stack (specified with a
28: .IR sigvec (2)
29: call), the system checks to see
30: if the process is currently executing on that stack. If the
31: process is not currently executing on the signal stack,
32: the system arranges a switch to the signal stack for the
33: duration of the signal handler's execution.
34: If
35: .I oss
36: is non-zero, the current signal stack state is returned.
37: .SH NOTES
38: Signal stacks are not ``grown'' automatically, as is
39: done for the normal stack. If the stack overflows
40: unpredictable results may occur.
41: .SH "RETURN VALUE
42: Upon successful completion, a value of 0 is returned.
43: Otherwise, a value of \-1 is returned and
44: .I errno
45: is set to indicate the error.
46: .SH ERRORS
47: .I Sigstack
48: will fail and the signal stack context will remain unchanged
49: if one of the following occurs.
50: .TP 15
51: [EFAULT]
52: Either
53: .I ss
54: or
55: .I oss
56: points to memory which is not a valid part of the process
57: address space.
58: .SH "SEE ALSO"
59: sigvec(2), setjmp(3)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.