Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\select.c Create Date:2022-07-28 20:07:03
Last Modify:2020-03-18 10:25:38 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:do_pselect

Proto: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)

Type:long

Parameter:

TypeParameterName
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  If tsp Then
738  Case type == PT_TIMESPEC
739  If get_timespec64( & ts, tsp) Then Return -EFAULT
741  Break
742  Case type == PT_OLD_TIMESPEC
743  If get_old_timespec32( & ts, tsp) Then Return -EFAULT
745  Break
746  Default
747  BUG()
750  to = end_time
751  If 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 Then Return -EINVAL
755  ret = The api helps set app-provided sigmasks
756  If ret Then Return 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  Return poll_select_finish( & end_time, tsp, type, ret)
Caller
NameDescribe
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.