Lines Matching +full:current +full:- +full:limit
1 /* SPDX-License-Identifier: GPL-2.0 */
12 #include <linux/posix-timers.h>
18 * Types defining task->signal and task->sighand and APIs using them:
29 * Per-process accounting stats:
61 * struct thread_group_cputimer - thread group interval timer counts
91 /* current thread group signal load-balancing target: */
103 * - notify group_exit_task when ->count is equal to notify_count
104 * - everyone except group_exit_task is stopped during signal delivery
116 * manager, to re-parent orphan (double-forking) child processes
197 * because there is no reader checking a limit that actually needs
200 * getrlimit/setrlimit use task_lock(current->group_leader) to
207 struct pacct_struct pacct; /* per-process accounting information */
268 WARN_ON(sig->flags & (SIGNAL_GROUP_EXIT|SIGNAL_GROUP_COREDUMP)); in signal_set_stop_flags()
269 sig->flags = (sig->flags & ~SIGNAL_STOP_MASK) | flags; in signal_set_stop_flags()
272 /* If true, all threads except ->group_exit_task have pending SIGKILL */
275 return (sig->flags & SIGNAL_GROUP_EXIT) || in signal_group_exit()
276 (sig->group_exit_task != NULL); in signal_group_exit()
287 struct task_struct *task = current; in kernel_dequeue_signal()
291 spin_lock_irq(&task->sighand->siglock); in kernel_dequeue_signal()
292 ret = dequeue_signal(task, &task->blocked, &__info); in kernel_dequeue_signal()
293 spin_unlock_irq(&task->sighand->siglock); in kernel_dequeue_signal()
300 spin_lock_irq(¤t->sighand->siglock); in kernel_signal_stop()
301 if (current->jobctl & JOBCTL_STOP_DEQUEUED) in kernel_signal_stop()
303 spin_unlock_irq(¤t->sighand->siglock); in kernel_signal_stop()
359 set_tsk_thread_flag(current, TIF_SIGPENDING); in restart_syscall()
360 return -ERESTARTNOINTR; in restart_syscall()
382 return unlikely(sigismember(&p->pending.signal, SIGKILL)); in __fatal_signal_pending()
402 * should stop the current fault routine to handle the signals
410 (fatal_signal_pending(current) || in fault_signal_pending()
411 (user_mode(regs) && signal_pending(current)))); in fault_signal_pending()
418 * callers must hold sighand->siglock.
444 * set_restore_sigmask() - make sure saved_sigmask processing gets done
483 /* Higher-quality implementation, used if TIF_RESTORE_SIGMASK doesn't exist. */
486 current->restore_sigmask = true; in set_restore_sigmask()
490 task->restore_sigmask = false; in clear_tsk_restore_sigmask()
494 current->restore_sigmask = false; in clear_restore_sigmask()
498 return current->restore_sigmask; in test_restore_sigmask()
502 return task->restore_sigmask; in test_tsk_restore_sigmask()
506 if (!current->restore_sigmask) in test_and_clear_restore_sigmask()
508 current->restore_sigmask = false; in test_and_clear_restore_sigmask()
516 __set_current_blocked(¤t->saved_sigmask); in restore_saved_sigmask()
524 WARN_ON(!signal_pending(current)); in restore_saved_sigmask_unless()
531 sigset_t *res = ¤t->blocked; in sigmask_to_save()
533 res = ¤t->saved_sigmask; in sigmask_to_save()
549 return sp >= current->sas_ss_sp && in __on_sig_stack()
550 sp - current->sas_ss_sp < current->sas_ss_size; in __on_sig_stack()
552 return sp > current->sas_ss_sp && in __on_sig_stack()
553 sp - current->sas_ss_sp <= current->sas_ss_size; in __on_sig_stack()
571 if (current->sas_ss_flags & SS_AUTODISARM) in on_sig_stack()
579 if (!current->sas_ss_size) in sas_ss_flags()
587 p->sas_ss_sp = 0; in sas_ss_reset()
588 p->sas_ss_size = 0; in sas_ss_reset()
589 p->sas_ss_flags = SS_DISABLE; in sas_ss_reset()
594 if (unlikely((ksig->ka.sa.sa_flags & SA_ONSTACK)) && ! sas_ss_flags(sp)) in sigsp()
596 return current->sas_ss_sp; in sigsp()
598 return current->sas_ss_sp + current->sas_ss_size; in sigsp()
610 list_entry_rcu((p)->tasks.next, struct task_struct, tasks)
619 * 'break' will not work as expected - use goto instead.
628 list_for_each_entry_rcu(t, &(signal)->thread_head, thread_node)
631 __for_each_thread((p)->signal, t)
647 pid = task->signal->pids[type]; in task_pid_type()
653 return task->signal->pids[PIDTYPE_TGID]; in task_tgid()
658 * the result of task_pgrp/task_session even if task == current,
663 return task->signal->pids[PIDTYPE_PGID]; in task_pgrp()
668 return task->signal->pids[PIDTYPE_SID]; in task_session()
673 return task->signal->nr_threads; in get_nr_threads()
678 return p->exit_signal >= 0; in thread_group_leader()
684 return p1->signal == p2->signal; in same_thread_group()
689 return list_entry_rcu(p->thread_group.next, in next_thread()
695 return list_empty(&p->thread_group); in thread_group_empty()
712 (void)__cond_lock(&task->sighand->siglock, ret); in lock_task_sighand()
719 spin_unlock_irqrestore(&task->sighand->siglock, *flags); in unlock_task_sighand()
723 unsigned int limit) in task_rlimit() argument
725 return READ_ONCE(task->signal->rlim[limit].rlim_cur); in task_rlimit()
729 unsigned int limit) in task_rlimit_max() argument
731 return READ_ONCE(task->signal->rlim[limit].rlim_max); in task_rlimit_max()
734 static inline unsigned long rlimit(unsigned int limit) in rlimit() argument
736 return task_rlimit(current, limit); in rlimit()
739 static inline unsigned long rlimit_max(unsigned int limit) in rlimit_max() argument
741 return task_rlimit_max(current, limit); in rlimit_max()