1/* sigstack, sigaltstack definitions.
2 Copyright (C) 1998-2017 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <http://www.gnu.org/licenses/>. */
18
19#ifndef _BITS_SIGSTACK_H
20#define _BITS_SIGSTACK_H 1
21
22#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
23# error "Never include this file directly. Use <signal.h> instead"
24#endif
25
26#define __need_size_t
27#include <stddef.h>
28
29/* Structure describing a signal stack (obsolete). */
30struct sigstack
31 {
32 void *ss_sp; /* Signal stack pointer. */
33 int ss_onstack; /* Nonzero if executing on this stack. */
34 };
35
36/* Alternate, preferred interface. */
37typedef struct sigaltstack
38 {
39 void *ss_sp;
40 int ss_flags;
41 size_t ss_size;
42 } stack_t;
43
44/* Possible values for `ss_flags'. */
45enum
46{
47 SS_ONSTACK = 1,
48#define SS_ONSTACK SS_ONSTACK
49 SS_DISABLE
50#define SS_DISABLE SS_DISABLE
51};
52
53/* Minimum stack size for a signal handler. */
54#define MINSIGSTKSZ 2048
55
56/* System default stack size. */
57#define SIGSTKSZ 8192
58
59#endif /* bits/sigstack.h */
60