函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\signal.c Create Date:2022-07-27 10:18:00
Last Modify:2020-03-17 13:28:47 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:sigsuspend

函数原型:static int sigsuspend(sigset_t *set)

返回类型:int

参数:

类型参数名称
sigset_t *set
4434  saved_sigmask等于blocked
4435  set_current_blocked - change current->blocked mask*@newset: new mask* It is wrong to change ->blocked directly, this helper should be used* to ensure the process can't miss a shared signal we are going to block.
4437  当非signal_pending(当前进程)循环
4438  set_current_state() includes a barrier so that the write of current->state* is correctly serialised wrt the caller's subsequent test of whether to* actually sleep:* for (;;) {* set_current_state(TASK_UNINTERRUPTIBLE);* if (!need_sleep)* break;* (睡眠态)
4439  schedule()
4441  Higher-quality implementation, used if TIF_RESTORE_SIGMASK doesn't exist.
4442  返回:负start if no handler..
调用者
名称描述
SYSCALL_DEFINE2sys_rt_sigsuspend - replace the signal mask for a value with the*@unewset value until a signal is received*@unewset: new signal mask value*@sigsetsize: size of sigset_t type
COMPAT_SYSCALL_DEFINE2