#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/syscalls.h>
#include <linux/export.h>
#include <linux/slab.h>
#include <linux/poll.h>
#include <linux/personality.h>
#include <linux/file.h>
#include <linux/fdtable.h>
#include <linux/fs.h>
#include <linux/rcupdate.h>
#include <linux/hrtimer.h>
#include <asm/uaccess.h>
Go to the source code of this file.
|
long | select_estimate_accuracy (struct timespec *tv) |
|
void | poll_initwait (struct poll_wqueues *pwq) |
|
| EXPORT_SYMBOL (poll_initwait) |
|
void | poll_freewait (struct poll_wqueues *pwq) |
|
| EXPORT_SYMBOL (poll_freewait) |
|
int | poll_schedule_timeout (struct poll_wqueues *pwq, int state, ktime_t *expires, unsigned long slack) |
|
| EXPORT_SYMBOL (poll_schedule_timeout) |
|
int | poll_select_set_timeout (struct timespec *to, long sec, long nsec) |
|
int | do_select (int n, fd_set_bits *fds, struct timespec *end_time) |
|
int | core_sys_select (int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, struct timespec *end_time) |
|
| SYSCALL_DEFINE5 (select, int, n, fd_set __user *, inp, fd_set __user *, outp, fd_set __user *, exp, struct timeval __user *, tvp) |
|
| SYSCALL_DEFINE6 (pselect6, int, n, fd_set __user *, inp, fd_set __user *, outp, fd_set __user *, exp, struct timespec __user *, tsp, void __user *, sig) |
|
int | do_sys_poll (struct pollfd __user *ufds, unsigned int nfds, struct timespec *end_time) |
|
| SYSCALL_DEFINE3 (poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout_msecs) |
|
| SYSCALL_DEFINE5 (ppoll, struct pollfd __user *, ufds, unsigned int, nfds, struct timespec __user *, tsp, const sigset_t __user *, sigmask, size_t, sigsetsize) |
|
#define FDS_EX |
( |
|
fds, |
|
|
|
n |
|
) |
| (fds->ex + n) |
#define FDS_IN |
( |
|
fds, |
|
|
|
n |
|
) |
| (fds->in + n) |
#define FDS_OUT |
( |
|
fds, |
|
|
|
n |
|
) |
| (fds->out + n) |
poll_select_set_timeout - helper function to setup the timeout value : pointer to timespec variable for the final timeout : seconds (from user space) : nanoseconds (from user space)
Note, we do not use a timespec for the user space value here, That way we can use the function for timeval and compat interfaces as well.
Returns -EINVAL if sec/nsec are not normalized. Otherwise 0.
Definition at line 269 of file select.c.
SYSCALL_DEFINE5 |
( |
select |
, |
|
|
int |
, |
|
|
n |
, |
|
|
fd_set __user * |
, |
|
|
inp |
, |
|
|
fd_set __user * |
, |
|
|
outp |
, |
|
|
fd_set __user * |
, |
|
|
exp |
, |
|
|
struct timeval __user * |
, |
|
|
tvp |
|
|
) |
| |
SYSCALL_DEFINE5 |
( |
ppoll |
, |
|
|
struct pollfd __user * |
, |
|
|
ufds |
, |
|
|
unsigned |
int, |
|
|
nfds |
, |
|
|
struct timespec __user * |
, |
|
|
tsp |
, |
|
|
const sigset_t __user * |
, |
|
|
sigmask |
, |
|
|
size_t |
, |
|
|
sigsetsize |
|
|
) |
| |
SYSCALL_DEFINE6 |
( |
pselect6 |
, |
|
|
int |
, |
|
|
n |
, |
|
|
fd_set __user * |
, |
|
|
inp |
, |
|
|
fd_set __user * |
, |
|
|
outp |
, |
|
|
fd_set __user * |
, |
|
|
exp |
, |
|
|
struct timespec __user * |
, |
|
|
tsp |
, |
|
|
void __user * |
, |
|
|
sig |
|
|
) |
| |