2 .\" epoll by Davide Libenzi ( efficient event notification retrieval )
3 .\" Copyright (C) 2003 Davide Libenzi
5 .\" This program is free software; you can redistribute it and/or modify
6 .\" it under the terms of the GNU General Public License as published by
7 .\" the Free Software Foundation; either version 2 of the License, or
8 .\" (at your option) any later version.
10 .\" This program is distributed in the hope that it will be useful,
11 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
12 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 .\" GNU General Public License for more details.
15 .\" You should have received a copy of the GNU General Public License
16 .\" along with this program; if not, write to the Free Software
17 .\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 .\" Davide Libenzi <davidel@xmailserver.org>
21 .TH EPOLL_CTL 2 2002-10-23 Linux "Linux Programmer's Manual"
23 epoll_ctl \- control interface for an epoll descriptor
25 .B #include <sys/epoll.h>
27 .BI "int epoll_ctl(int " epfd ", int " op ", int " fd ", struct epoll_event *" event )
33 by requesting that the operation
35 be performed on the target file descriptor,
39 describes the object linked to the file descriptor
47 typedef union epoll_data {
55 __uint32_t events; /* Epoll events */
56 epoll_data_t data; /* User data variable */
63 member is a bit set composed using the following available event
67 The associated file is available for
72 The associated file is available for
76 .BR EPOLLRDHUP " (since kernel 2.6.17)"
77 Stream socket peer closed connection,
78 or shut down writing half of connection.
79 (This flag is especially useful for writing simple code to detect
80 peer shutdown when using Edge Triggered monitoring.)
83 There is urgent data available for
88 Error condition happened on the associated file descriptor.
90 will always wait for this event; it is not necessary to set it in
94 Hang up happened on the associated file descriptor.
96 will always wait for this event; it is not necessary to set it in
100 Sets the Edge Triggered behaviour for the associated file descriptor.
101 The default behaviour for
106 for more detailed information about Edge and Level Triggered event
107 distribution architectures.
109 .BR EPOLLONESHOT " (since kernel 2.6.2)"
110 Sets the one-shot behaviour for the associated file descriptor.
111 This means that after an event is pulled out with
113 the associated file descriptor is internally disabled and no other events
114 will be reported by the
121 to re-enable the file descriptor with a new event mask.
125 interface supports all file descriptors that support
133 Add the target file descriptor
139 and associate the event
141 with the internal file linked to
147 associated with the target file descriptor
151 Remove the target file descriptor
159 is ignored and can be NULL (but see BUGS below).
165 When an error occurs,
169 is set appropriately.
176 is not a valid file descriptor.
180 was EPOLL_CTL_ADD, and the supplied file descriptor
194 or the requested operation
196 is not supported by this interface.
200 was EPOLL_CTL_MOD or EPOLL_CTL_DEL, and
206 There was insufficient memory to handle the requested
217 is Linux specific, and was introduced in kernel 2.5.44.
218 .\" The interface should be finalized by Linux kernel 2.5.66.
220 In kernel versions before 2.6.9, the
222 operation required a non-NULL pointer in
224 even though this argument is ignored.
227 can be specified as NULL
231 .BR epoll_create (2),