函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\select.c Create Date:2022-07-29 10:37:02
Last Modify:2020-03-18 10:25:38 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:do_pselect

函数原型:static long do_pselect(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, void __user *tsp, const sigset_t __user *sigmask, size_t sigsetsize, enum poll_time_type type)

返回类型:long

参数:

类型参数名称
intn
fd_set __user *inp
fd_set __user *outp
fd_set __user *exp
void __user *tsp
const sigset_t __user *sigmask
size_tsigsetsize
enum poll_time_typetype
733  struct timespec64 ts, end_time, * to = NULL
736  如果tsp
738  :type恒等于PT_TIMESPEC
739  如果get_timespec64( & ts, tsp)则返回:负EFAULT
741  退出
742  :type恒等于PT_OLD_TIMESPEC
743  如果get_old_timespec32( & ts, tsp)则返回:负EFAULT
745  退出
746  默认
747  BUG()
750  to等于end_time
751  如果poll_select_set_timeout - helper function to setup the timeout value*@to: pointer to timespec64 variable for the final timeout*@sec: seconds (from user space)*@nsec: nanoseconds (from user space)* Note, we do not use a timespec for the user space value 则返回:负EINVAL
755  ret等于The api helps set app-provided sigmasks
756  如果ret则返回:ret
759  ret等于We can actually return ERESTARTSYS instead of EINTR, but I'd* like to be certain this leads to no problems. So I return* EINTR just for safety.* Update: ERESTARTSYS breaks at least the xview clock binary, so
760  返回:poll_select_finish( & end_time, tsp, type, ret)
调用者
名称描述
SYSCALL_DEFINE6Most architectures can't handle 7-argument syscalls. So we provide a* 6-argument version where the sixth argument is a pointer to a structure* which has a pointer to the sigset_t itself followed by a size_t containing* the sigset size.