Lines Matching full:blocked
106 * Blocked signals are never ignored, since the in sig_ignored()
110 if (sigismember(&t->blocked, sig) || sigismember(&t->real_blocked, sig)) in sig_ignored()
126 * signals, globally pending signals, and blocked signals.
128 static inline bool has_pending_signals(sigset_t *signal, sigset_t *blocked) in has_pending_signals() argument
136 ready |= signal->sig[i] &~ blocked->sig[i]; in has_pending_signals()
139 case 4: ready = signal->sig[3] &~ blocked->sig[3]; in has_pending_signals()
140 ready |= signal->sig[2] &~ blocked->sig[2]; in has_pending_signals()
141 ready |= signal->sig[1] &~ blocked->sig[1]; in has_pending_signals()
142 ready |= signal->sig[0] &~ blocked->sig[0]; in has_pending_signals()
145 case 2: ready = signal->sig[1] &~ blocked->sig[1]; in has_pending_signals()
146 ready |= signal->sig[0] &~ blocked->sig[0]; in has_pending_signals()
149 case 1: ready = signal->sig[0] &~ blocked->sig[0]; in has_pending_signals()
159 PENDING(&t->pending, &t->blocked) || in recalc_sigpending_tsk()
160 PENDING(&t->signal->shared_pending, &t->blocked) || in recalc_sigpending_tsk()
715 if (!((pending->signal.sig[0] & ~tsk->blocked.sig[0]) & SYNCHRONOUS_MASK)) in dequeue_synchronous_signal()
757 * goes through ->blocked
979 if (sigismember(&p->blocked, sig)) in wants_signal()
1318 * since we do not want to have a signal handler that was blocked
1319 * be invoked when user space had explicitly blocked it.
1329 int ret, blocked, ignored; in force_sig_info_to_task() local
1336 blocked = sigismember(&t->blocked, sig); in force_sig_info_to_task()
1337 if (blocked || ignored || (handler != HANDLER_CURRENT)) { in force_sig_info_to_task()
1341 if (blocked) in force_sig_info_to_task()
1342 sigdelset(&t->blocked, sig); in force_sig_info_to_task()
1352 /* This can happen if the signal was already pending and blocked */ in force_sig_info_to_task()
1818 * process if SIGTRAP is blocked, however, delivering the signal in send_sig_perf()
1823 info.si_perf_flags = sigismember(¤t->blocked, info.si_signo) ? in send_sig_perf()
2114 * blocked sys_wait4 might now return -ECHILD. in do_notify_parent()
2629 /* If the (new) signal is now blocked, requeue it. */ in ptrace_signal()
2630 if (sigismember(¤t->blocked, signr) || in ptrace_signal()
2773 signr = dequeue_signal(current, ¤t->blocked, in get_signal()
2907 * signal_delivered - called after signal delivery to update blocked signals
2912 * delivered. It updates the blocked signals accordingly (@ksig->ka.sa.sa_mask
2913 * is always blocked), and the signal itself is blocked unless %SA_NODEFER
2918 sigset_t blocked; in signal_delivered() local
2926 sigorsets(&blocked, ¤t->blocked, &ksig->ka.sa.sa_mask); in signal_delivered()
2928 sigaddset(&blocked, ksig->sig); in signal_delivered()
2929 set_current_blocked(&blocked); in signal_delivered()
2962 if (!has_pending_signals(&retarget, &t->blocked)) in retarget_shared_pending()
2965 sigandsets(&retarget, &retarget, &t->blocked); in retarget_shared_pending()
3006 unblocked = tsk->blocked; in exit_signals()
3049 /* A set of now blocked but previously unblocked signals. */ in __set_task_blocked()
3050 sigandnsets(&newblocked, newset, ¤t->blocked); in __set_task_blocked()
3053 tsk->blocked = *newset; in __set_task_blocked()
3058 * set_current_blocked - change current->blocked mask
3061 * It is wrong to change ->blocked directly, this helper should be used
3076 * to do. The current->blocked shouldn't be modified by other task. in __set_current_blocked()
3078 if (sigequalsets(&tsk->blocked, newset)) in __set_current_blocked()
3099 /* Lockless, only current can change ->blocked, never from irq */ in sigprocmask()
3101 *oldset = tsk->blocked; in sigprocmask()
3105 sigorsets(&newset, &tsk->blocked, set); in sigprocmask()
3108 sigandnsets(&newset, &tsk->blocked, set); in sigprocmask()
3143 current->saved_sigmask = current->blocked; in set_user_sigmask()
3163 current->saved_sigmask = current->blocked; in set_compat_user_sigmask()
3171 * sys_rt_sigprocmask - change the list of currently blocked signals
3187 old_set = current->blocked; in SYSCALL_DEFINE4()
3211 sigset_t old_set = current->blocked; in COMPAT_SYSCALL_DEFINE4()
3240 sigandsets(set, ¤t->blocked, set); in do_sigpending()
3245 * while blocked
3635 tsk->real_blocked = tsk->blocked; in do_sigtimedwait()
3636 sigandsets(&tsk->blocked, &tsk->blocked, &mask); in do_sigtimedwait()
4168 * whether or not it is blocked." in do_sigaction()
4173 * be discarded, whether or not it is blocked" in do_sigaction()
4389 * sys_sigprocmask - examine and change blocked signals
4404 old_set = current->blocked.sig[0]; in SYSCALL_DEFINE3()
4410 new_blocked = current->blocked; in SYSCALL_DEFINE3()
4603 return current->blocked.sig[0]; in SYSCALL_DEFINE0()
4608 int old = current->blocked.sig[0]; in SYSCALL_DEFINE1()
4652 current->saved_sigmask = current->blocked; in sigsuspend()
4700 sigset_t blocked; in SYSCALL_DEFINE1() local
4701 siginitset(&blocked, mask); in SYSCALL_DEFINE1()
4702 return sigsuspend(&blocked); in SYSCALL_DEFINE1()
4708 sigset_t blocked; in SYSCALL_DEFINE3() local
4709 siginitset(&blocked, mask); in SYSCALL_DEFINE3()
4710 return sigsuspend(&blocked); in SYSCALL_DEFINE3()