Lines Matching full:blocked
109 * Blocked signals are never ignored, since the in sig_ignored()
113 if (sigismember(&t->blocked, sig) || sigismember(&t->real_blocked, sig)) in sig_ignored()
129 * signals, globally pending signals, and blocked signals.
131 static inline bool has_pending_signals(sigset_t *signal, sigset_t *blocked) in has_pending_signals() argument
139 ready |= signal->sig[i] &~ blocked->sig[i]; in has_pending_signals()
142 case 4: ready = signal->sig[3] &~ blocked->sig[3]; in has_pending_signals()
143 ready |= signal->sig[2] &~ blocked->sig[2]; in has_pending_signals()
144 ready |= signal->sig[1] &~ blocked->sig[1]; in has_pending_signals()
145 ready |= signal->sig[0] &~ blocked->sig[0]; in has_pending_signals()
148 case 2: ready = signal->sig[1] &~ blocked->sig[1]; in has_pending_signals()
149 ready |= signal->sig[0] &~ blocked->sig[0]; in has_pending_signals()
152 case 1: ready = signal->sig[0] &~ blocked->sig[0]; in has_pending_signals()
162 PENDING(&t->pending, &t->blocked) || in recalc_sigpending_tsk()
163 PENDING(&t->signal->shared_pending, &t->blocked) || in recalc_sigpending_tsk()
676 if (!((pending->signal.sig[0] & ~tsk->blocked.sig[0]) & SYNCHRONOUS_MASK)) in dequeue_synchronous_signal()
718 * goes through ->blocked
947 if (sigismember(&p->blocked, sig)) in wants_signal()
1286 * since we do not want to have a signal handler that was blocked
1287 * be invoked when user space had explicitly blocked it.
1297 int ret, blocked, ignored; in force_sig_info_to_task() local
1304 blocked = sigismember(&t->blocked, sig); in force_sig_info_to_task()
1305 if (blocked || ignored || (handler != HANDLER_CURRENT)) { in force_sig_info_to_task()
1309 if (blocked) in force_sig_info_to_task()
1310 sigdelset(&t->blocked, sig); in force_sig_info_to_task()
1320 /* This can happen if the signal was already pending and blocked */ in force_sig_info_to_task()
1790 * process if SIGTRAP is blocked, however, delivering the signal in send_sig_perf()
1795 info.si_perf_flags = sigismember(¤t->blocked, info.si_signo) ? in send_sig_perf()
2010 * The signal was ignored and blocked. The timer in posixtimer_send_sigqueue()
2011 * expiry queued it because blocked signals are in posixtimer_send_sigqueue()
2067 * If the signal is on the ignore list, it got blocked after it was in posixtimer_send_sigqueue()
2246 * blocked sys_wait4 might now return -ECHILD. in do_notify_parent()
2769 /* If the (new) signal is now blocked, requeue it. */ in ptrace_signal()
2770 if (sigismember(¤t->blocked, signr) || in ptrace_signal()
2916 signr = dequeue_signal(¤t->blocked, &ksig->info, &type); in get_signal()
3050 * signal_delivered - called after signal delivery to update blocked signals
3055 * delivered. It updates the blocked signals accordingly (@ksig->ka.sa.sa_mask
3056 * is always blocked), and the signal itself is blocked unless %SA_NODEFER
3061 sigset_t blocked; in signal_delivered() local
3069 sigorsets(&blocked, ¤t->blocked, &ksig->ka.sa.sa_mask); in signal_delivered()
3071 sigaddset(&blocked, ksig->sig); in signal_delivered()
3072 set_current_blocked(&blocked); in signal_delivered()
3105 if (!has_pending_signals(&retarget, &t->blocked)) in retarget_shared_pending()
3108 sigandsets(&retarget, &retarget, &t->blocked); in retarget_shared_pending()
3149 unblocked = tsk->blocked; in exit_signals()
3192 /* A set of now blocked but previously unblocked signals. */ in __set_task_blocked()
3193 sigandnsets(&newblocked, newset, ¤t->blocked); in __set_task_blocked()
3196 tsk->blocked = *newset; in __set_task_blocked()
3201 * set_current_blocked - change current->blocked mask
3204 * It is wrong to change ->blocked directly, this helper should be used
3219 * to do. The current->blocked shouldn't be modified by other task. in __set_current_blocked()
3221 if (sigequalsets(&tsk->blocked, newset)) in __set_current_blocked()
3242 /* Lockless, only current can change ->blocked, never from irq */ in sigprocmask()
3244 *oldset = tsk->blocked; in sigprocmask()
3248 sigorsets(&newset, &tsk->blocked, set); in sigprocmask()
3251 sigandnsets(&newset, &tsk->blocked, set); in sigprocmask()
3286 current->saved_sigmask = current->blocked; in set_user_sigmask()
3306 current->saved_sigmask = current->blocked; in set_compat_user_sigmask()
3314 * sys_rt_sigprocmask - change the list of currently blocked signals
3330 old_set = current->blocked; in SYSCALL_DEFINE4()
3354 sigset_t old_set = current->blocked; in COMPAT_SYSCALL_DEFINE4()
3383 sigandsets(set, ¤t->blocked, set); in do_sigpending()
3388 * while blocked
3778 tsk->real_blocked = tsk->blocked; in do_sigtimedwait()
3779 sigandsets(&tsk->blocked, &tsk->blocked, &mask); in do_sigtimedwait()
4326 * whether or not it is blocked." in do_sigaction()
4331 * be discarded, whether or not it is blocked" in do_sigaction()
4549 * sys_sigprocmask - examine and change blocked signals
4564 old_set = current->blocked.sig[0]; in SYSCALL_DEFINE3()
4570 new_blocked = current->blocked; in SYSCALL_DEFINE3()
4763 return current->blocked.sig[0]; in SYSCALL_DEFINE0()
4768 int old = current->blocked.sig[0]; in SYSCALL_DEFINE1()
4812 current->saved_sigmask = current->blocked; in sigsuspend()
4860 sigset_t blocked; in SYSCALL_DEFINE1() local
4861 siginitset(&blocked, mask); in SYSCALL_DEFINE1()
4862 return sigsuspend(&blocked); in SYSCALL_DEFINE1()
4868 sigset_t blocked; in SYSCALL_DEFINE3() local
4869 siginitset(&blocked, mask); in SYSCALL_DEFINE3()
4870 return sigsuspend(&blocked); in SYSCALL_DEFINE3()