1 #include <signal.h> 2 #include <errno.h> 3 #include "syscall.h" 4 sigaltstack(const stack_t * restrict ss,stack_t * restrict old)5int sigaltstack(const stack_t *restrict ss, stack_t *restrict old) 6 { 7 if (ss) { 8 if (!(ss->ss_flags & SS_DISABLE) && ss->ss_size < MINSIGSTKSZ) { 9 errno = ENOMEM; 10 return -1; 11 } 12 if (ss->ss_flags & SS_ONSTACK) { 13 errno = EINVAL; 14 return -1; 15 } 16 } 17 return syscall(SYS_sigaltstack, ss, old); 18 } 19