| #include <signal.h> | |
| #include <errno.h> | |
| #include "syscall.h" | |
| int sigaltstack(const stack_t *restrict ss, stack_t *restrict old) | |
| { | |
| if (ss) { | |
| if (!(ss->ss_flags & SS_DISABLE) && ss->ss_size < MINSIGSTKSZ) { | |
| errno = ENOMEM; | |
| return -1; | |
| } | |
| if (ss->ss_flags & SS_ONSTACK) { | |
| errno = EINVAL; | |
| return -1; | |
| } | |
| } | |
| return syscall(SYS_sigaltstack, ss, old); | |
| } |