函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\futex.c Create Date:2022-07-27 11:55:03
Last Modify:2020-03-17 15:28:32 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:sys_get_robust_list() - Get the robust-futex list head of a task*@pid: pid of the process [zero for current task]*@head_ptr: pointer to a list-head pointer, the kernel fills it in*@len_ptr: pointer to a length field, the kernel fills in the header size

函数原型:SYSCALL_DEFINE3(get_robust_list, int, pid, struct robust_list_head __user *__user *, head_ptr, size_t __user *, len_ptr)

返回类型:

参数:

3507  __userhead
3511  如果非futex_cmpxchg_enabled则返回:负ENOSYS
3514  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
3516  ret等于负ESRCH
3517  如果(!pid)则p等于当前进程
3519  否则
3520  p等于find_task_by_vpid(pid)
3521  如果非p则转到:err_unlock
3525  ret等于负EPERM
3526  如果非ptrace_may_access(p, PTRACE_MODE_READ_REALCREDS)则转到:err_unlock
3529  head等于robust_list
3530  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
3532  如果put_user - Write a simple value into user space(head的长度, len_ptr)则返回:负EFAULT
3534  返回:put_user - Write a simple value into user space(head, head_ptr)
3536  err_unlock :
3537  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
3539  返回:ret