diff options
Diffstat (limited to 'man2/epoll_wait.2')
-rw-r--r-- | man2/epoll_wait.2 | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/man2/epoll_wait.2 b/man2/epoll_wait.2 new file mode 100644 index 000000000..dfe524ea1 --- /dev/null +++ b/man2/epoll_wait.2 @@ -0,0 +1,119 @@ +.\" +.\" epoll by Davide Libenzi ( efficient event notification retrieval ) +.\" Copyright (C) 2003 Davide Libenzi +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program; if not, write to the Free Software +.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +.\" +.\" Davide Libenzi <davidel@xmailserver.org> +.\" +.\" +.TH EPOLL_WAIT 2 "23 October 2002" Linux "Linux Programmer's Manual" +.SH NAME +epoll_wait \- wait for an I/O event on an epoll file descriptor +.SH SYNOPSIS +.B #include <sys/epoll.h> +.sp +.BR "int epoll_wait(int " epfd ", struct epoll_event * " events ", int " maxevents ", int " timeout) +.SH DESCRIPTION +Wait for events on the +.B epoll +file descriptor +.I epfd +for a maximum time of +.I timeout +milliseconds. The memory area pointed to by +.I events +will contain the events that will be available for the caller. +Up to +.I maxevents +are returned by +.BR epoll_wait (2). +The +.I maxevents +parameter must be greater than zero. Specifying a +.I timeout +of \-1 makes +.BR epoll_wait (2) +wait indefinitely, while specifying a +.I timeout +equal to zero makes +.BR epoll_wait (2) +to return immediately even if no events are available ( return code equal to zero ). +The +.B struct epoll_event +is defined as : +.sp +.nf + + typedef union epoll_data { + void *ptr; + int fd; + __uint32_t u32; + __uint64_t u64; + } epoll_data_t; + + struct epoll_event { + __uint32_t events; /* Epoll events */ + epoll_data_t data; /* User data variable */ + }; + +.fi + +The +.I data +of each returned structure will contain the same data the user set with a +.BR epoll_ctl (2) +.IR ( EPOLL_CTL_ADD , EPOLL_CTL_MOD ) +while the +.I events +member will contain the returned event bit field. +.SH "RETURN VALUE" +When successful, +.BR epoll_wait (2) +returns the number of file descriptors ready for the requested I/O, or zero +if no file descriptor became ready during the requested +.I timeout +milliseconds. When an error occurs, +.BR epoll_wait (2) +returns \-1 and +.I errno +is set appropriately. +.SH ERRORS +.TP +.B EBADF +.I epfd +is not a valid file descriptor. +.TP +.B EFAULT +The memory area pointed to by +.I events +is not accessible with write permissions. +.TP +.B EINVAL +The supplied file descriptor, +.IR epfd , +is not an +.B epoll +file descriptor, or the +.I maxevents +parameter is less than or equal to zero. +.SH CONFORMING TO +.BR epoll_wait (2) +is a new API introduced in Linux kernel 2.5.44. +The interface should be finalized by Linux kernel 2.5.66. +.SH "SEE ALSO" +.BR epoll_create (2), +.BR epoll_ctl (2), +.BR epoll (4) |