sigaltstack.c raw

   1  #include <signal.h>
   2  #include <errno.h>
   3  #include "syscall.h"
   4  
   5  int 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