sigaltstack.c 330 B

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