Lines Matching refs:sa
26 extern bool intercept_sigaction(int signo, const struct sigaction *restrict sa, struct sigaction *restrict old);
44 int __libc_sigaction(int sig, const struct sigaction *restrict sa, struct sigaction *restrict old)
48 if (sa) {
49 if ((uintptr_t)sa->sa_handler > 1UL) {
67 if (!(sa->sa_flags & SA_RESTART)) {
75 if (sa->sa_handler != SIG_DFL && sig == SIGABRT) {
79 ksa.handler = sa->sa_handler;
80 ksa.flags = sa->sa_flags;
83 ksa.restorer = (sa->sa_flags & SA_SIGINFO) ? __restore_rt : __restore;
85 memcpy(&ksa.mask, &sa->sa_mask, _NSIG/8);
87 int r = __syscall(SYS_rt_sigaction, sig, sa?&ksa:0, old?&ksa_old:0, _NSIG/8);
88 if (sig == SIGABRT && sa && sa->sa_handler != SIG_DFL) {
100 int __sigaction(int sig, const struct sigaction *restrict sa, struct sigaction *restrict old)
107 if (intercept_sigaction(sig, sa, old)) {
111 return __libc_sigaction(sig, sa, old);