summaryrefslogtreecommitdiffstats
path: root/man2/epoll_wait.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/epoll_wait.2')
-rw-r--r--man2/epoll_wait.2119
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)