siglongjmp.c 256 B

1234567891011
  1. #include <setjmp.h>
  2. #include <signal.h>
  3. #include <stdlib.h>
  4. #include "syscall.h"
  5. _Noreturn void siglongjmp(sigjmp_buf buf, int ret)
  6. {
  7. if (buf->__fl) __syscall(SYS_rt_sigprocmask, SIG_SETMASK,
  8. buf->__ss, 0, __SYSCALL_SSLEN);
  9. longjmp(buf->__jb, ret);
  10. }