Index: newlib/libc/include/sys/signal.h =================================================================== RCS file: /cvs/src/src/newlib/libc/include/sys/signal.h,v retrieving revision 1.22 diff -u -r1.22 signal.h --- newlib/libc/include/sys/signal.h 26 Oct 2012 09:23:46 -0000 1.22 +++ newlib/libc/include/sys/signal.h 15 Aug 2014 16:03:12 -0000 @@ -71,9 +71,12 @@ /* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */ -#define SA_NOCLDSTOP 1 /* Do not generate SIGCHLD when children stop */ -#define SA_SIGINFO 2 /* Invoke the signal catching function with */ - /* three arguments instead of one. */ +#define SA_NOCLDSTOP 0x1 /* Do not generate SIGCHLD when children stop */ +#define SA_SIGINFO 0x2 /* Invoke the signal catching function with */ + /* three arguments instead of one. */ +#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 +#define SA_ONSTACK 0x4 /* Signal delivery will be on a separate stack. */ +#endif /* struct sigaction notes from POSIX: * @@ -104,6 +107,34 @@ #define sa_sigaction _signal_handlers._sigaction #endif +#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 +/* + * Minimum and default signal stack constants. Allow for target overrides + * from . + */ +#ifndef MINSIGSTKSZ +#define MINSIGSTKSZ 2048 +#endif +#ifndef SIGSTKSZ +#define SIGSTKSZ 8192 +#endif + +/* + * Possible values for ss_flags in stack_t below. + */ +#define SS_ONSTACK 0x1 +#define SS_DISABLE 0x2 + +/* + * Structure used in sigaltstack call. + */ +typedef struct sigaltstack { + void *ss_sp; /* Stack base or pointer. */ + int ss_flags; /* Flags. */ + size_t ss_size; /* Stack size. */ +} stack_t; +#endif + #elif defined(__CYGWIN__) #include #else @@ -161,6 +192,11 @@ int _EXFUN(sigsuspend, (const sigset_t *)); int _EXFUN(sigpause, (int)); + +#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 +int _EXFUN(sigaltstack, (const stack_t *__restrict, stack_t *__restrict)); +#endif + #if defined(_POSIX_THREADS) #ifdef __CYGWIN__ # ifndef _CYGWIN_TYPES_H