xref: /freebsd-src/contrib/libevent/epolltable-internal.h (revision b50261e21f39a6c7249a49e7b60aa878c98512a8)
1c43e99fdSEd Maste /*
2c43e99fdSEd Maste  * Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu>
3c43e99fdSEd Maste  * Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
4c43e99fdSEd Maste  *
5c43e99fdSEd Maste  * Redistribution and use in source and binary forms, with or without
6c43e99fdSEd Maste  * modification, are permitted provided that the following conditions
7c43e99fdSEd Maste  * are met:
8c43e99fdSEd Maste  * 1. Redistributions of source code must retain the above copyright
9c43e99fdSEd Maste  *    notice, this list of conditions and the following disclaimer.
10c43e99fdSEd Maste  * 2. Redistributions in binary form must reproduce the above copyright
11c43e99fdSEd Maste  *    notice, this list of conditions and the following disclaimer in the
12c43e99fdSEd Maste  *    documentation and/or other materials provided with the distribution.
13c43e99fdSEd Maste  * 3. The name of the author may not be used to endorse or promote products
14c43e99fdSEd Maste  *    derived from this software without specific prior written permission.
15c43e99fdSEd Maste  *
16c43e99fdSEd Maste  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17c43e99fdSEd Maste  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18c43e99fdSEd Maste  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19c43e99fdSEd Maste  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20c43e99fdSEd Maste  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21c43e99fdSEd Maste  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22c43e99fdSEd Maste  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23c43e99fdSEd Maste  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24c43e99fdSEd Maste  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25c43e99fdSEd Maste  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26c43e99fdSEd Maste  */
27c43e99fdSEd Maste #ifndef EPOLLTABLE_INTERNAL_H_INCLUDED_
28c43e99fdSEd Maste #define EPOLLTABLE_INTERNAL_H_INCLUDED_
29c43e99fdSEd Maste 
30c43e99fdSEd Maste /*
31c43e99fdSEd Maste   Here are the values we're masking off to decide what operations to do.
32c43e99fdSEd Maste   Note that since EV_READ|EV_WRITE.
33c43e99fdSEd Maste 
34c43e99fdSEd Maste   Note also that this table is a little sparse, since ADD+DEL is
35c43e99fdSEd Maste   nonsensical ("xxx" in the list below.)
36c43e99fdSEd Maste 
37*b50261e2SCy Schubert   Note also that we are shifting old_events by only 5 bits, since
38c43e99fdSEd Maste   EV_READ is 2 and EV_WRITE is 4.
39c43e99fdSEd Maste 
40c43e99fdSEd Maste   The table was auto-generated with a python script, according to this
41c43e99fdSEd Maste   pseudocode:[*0]
42c43e99fdSEd Maste 
43c43e99fdSEd Maste       If either the read or the write change is add+del:
44c43e99fdSEd Maste 	 This is impossible; Set op==-1, events=0.
45c43e99fdSEd Maste       Else, if either the read or the write change is add:
46c43e99fdSEd Maste 	 Set events to 0.
47c43e99fdSEd Maste 	 If the read change is add, or
48c43e99fdSEd Maste 	    (the read change is not del, and ev_read is in old_events):
49c43e99fdSEd Maste 	       Add EPOLLIN to events.
50c43e99fdSEd Maste 	 If the write change is add, or
51c43e99fdSEd Maste 	    (the write change is not del, and ev_write is in old_events):
52c43e99fdSEd Maste 	       Add EPOLLOUT to events.
53c43e99fdSEd Maste 
54c43e99fdSEd Maste 	 If old_events is set:
55c43e99fdSEd Maste 	       Set op to EPOLL_CTL_MOD [*1,*2]
56c43e99fdSEd Maste 	Else:
57c43e99fdSEd Maste 	       Set op to EPOLL_CTL_ADD [*3]
58c43e99fdSEd Maste 
59c43e99fdSEd Maste       Else, if the read or the write change is del:
60c43e99fdSEd Maste 	 Set op to EPOLL_CTL_DEL.
61c43e99fdSEd Maste 	 If the read change is del:
62c43e99fdSEd Maste 	     If the write change is del:
63c43e99fdSEd Maste 		 Set events to EPOLLIN|EPOLLOUT
64c43e99fdSEd Maste 	     Else if ev_write is in old_events:
65c43e99fdSEd Maste 		 Set events to EPOLLOUT
66c43e99fdSEd Maste 		Set op to EPOLL_CTL_MOD
67c43e99fdSEd Maste 	     Else
68c43e99fdSEd Maste 		 Set events to EPOLLIN
69c43e99fdSEd Maste 	 Else:
70c43e99fdSEd Maste 	     {The write change is del.}
71c43e99fdSEd Maste 	    If ev_read is in old_events:
72c43e99fdSEd Maste 		 Set events to EPOLLIN
73c43e99fdSEd Maste 		Set op to EPOLL_CTL_MOD
74c43e99fdSEd Maste 	    Else:
75c43e99fdSEd Maste 		Set the events to EPOLLOUT
76c43e99fdSEd Maste 
77c43e99fdSEd Maste       Else:
78c43e99fdSEd Maste 	   There is no read or write change; set op to 0 and events to 0.
79c43e99fdSEd Maste 
80c43e99fdSEd Maste       The logic is a little tricky, since we had no events set on the fd before,
81c43e99fdSEd Maste       we need to set op="ADD" and set events=the events we want to add.	 If we
82c43e99fdSEd Maste       had any events set on the fd before, and we want any events to remain on
83c43e99fdSEd Maste       the fd, we need to say op="MOD" and set events=the events we want to
84c43e99fdSEd Maste       remain.  But if we want to delete the last event, we say op="DEL" and
85c43e99fdSEd Maste       set events=(any non-null pointer).
86c43e99fdSEd Maste 
87c43e99fdSEd Maste   [*0] Actually, the Python script has gotten a bit more complicated, to
88c43e99fdSEd Maste        support EPOLLRDHUP.
89c43e99fdSEd Maste 
90c43e99fdSEd Maste   [*1] This MOD is only a guess.  MOD might fail with ENOENT if the file was
91c43e99fdSEd Maste        closed and a new file was opened with the same fd.  If so, we'll retry
92c43e99fdSEd Maste        with ADD.
93c43e99fdSEd Maste 
94c43e99fdSEd Maste   [*2] We can't replace this with a no-op even if old_events is the same as
95c43e99fdSEd Maste        the new events: if the file was closed and reopened, we need to retry
96c43e99fdSEd Maste        with an ADD.  (We do a MOD in this case since "no change" is more
97c43e99fdSEd Maste        common than "close and reopen", so we'll usually wind up doing 1
98c43e99fdSEd Maste        syscalls instead of 2.)
99c43e99fdSEd Maste 
100c43e99fdSEd Maste   [*3] This ADD is only a guess.  There is a fun Linux kernel issue where if
101c43e99fdSEd Maste        you have two fds for the same file (via dup) and you ADD one to an
102c43e99fdSEd Maste        epfd, then close it, then re-create it with the same fd (via dup2 or an
103c43e99fdSEd Maste        unlucky dup), then try to ADD it again, you'll get an EEXIST, since the
104c43e99fdSEd Maste        struct epitem is not actually removed from the struct eventpoll until
105c43e99fdSEd Maste        the file itself is closed.
106c43e99fdSEd Maste 
107c43e99fdSEd Maste   EV_CHANGE_ADD==1
108c43e99fdSEd Maste   EV_CHANGE_DEL==2
109c43e99fdSEd Maste   EV_READ      ==2
110c43e99fdSEd Maste   EV_WRITE     ==4
111c43e99fdSEd Maste   EV_CLOSED    ==0x80
112c43e99fdSEd Maste 
113c43e99fdSEd Maste   Bit 0: close change is add
114c43e99fdSEd Maste   Bit 1: close change is del
115c43e99fdSEd Maste   Bit 2: read change is add
116c43e99fdSEd Maste   Bit 3: read change is del
117c43e99fdSEd Maste   Bit 4: write change is add
118c43e99fdSEd Maste   Bit 5: write change is del
119c43e99fdSEd Maste   Bit 6: old events had EV_READ
120c43e99fdSEd Maste   Bit 7: old events had EV_WRITE
121c43e99fdSEd Maste   Bit 8: old events had EV_CLOSED
122c43e99fdSEd Maste */
123c43e99fdSEd Maste 
124c43e99fdSEd Maste #define EPOLL_OP_TABLE_INDEX(c) \
125c43e99fdSEd Maste 	(   (((c)->close_change&(EV_CHANGE_ADD|EV_CHANGE_DEL))) |		\
126c43e99fdSEd Maste 	    (((c)->read_change&(EV_CHANGE_ADD|EV_CHANGE_DEL)) << 2) |	\
127c43e99fdSEd Maste 	    (((c)->write_change&(EV_CHANGE_ADD|EV_CHANGE_DEL)) << 4) |	\
128c43e99fdSEd Maste 	    (((c)->old_events&(EV_READ|EV_WRITE)) << 5) |		\
129c43e99fdSEd Maste 	    (((c)->old_events&(EV_CLOSED)) << 1)				\
130c43e99fdSEd Maste 	    )
131c43e99fdSEd Maste 
132c43e99fdSEd Maste #if EV_READ != 2 || EV_WRITE != 4 || EV_CLOSED != 0x80 || EV_CHANGE_ADD != 1 || EV_CHANGE_DEL != 2
133c43e99fdSEd Maste #error "Libevent's internals changed!  Regenerate the op_table in epolltable-internal.h"
134c43e99fdSEd Maste #endif
135c43e99fdSEd Maste 
136c43e99fdSEd Maste static const struct operation {
137c43e99fdSEd Maste 	int events;
138c43e99fdSEd Maste 	int op;
139c43e99fdSEd Maste } epoll_op_table[] = {
140c43e99fdSEd Maste 	/* old=  0, write:  0, read:  0, close:  0 */
141c43e99fdSEd Maste 	{ 0, 0 },
142c43e99fdSEd Maste 	/* old=  0, write:  0, read:  0, close:add */
143c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_ADD },
144c43e99fdSEd Maste 	/* old=  0, write:  0, read:  0, close:del */
145c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_DEL },
146c43e99fdSEd Maste 	/* old=  0, write:  0, read:  0, close:xxx */
147c43e99fdSEd Maste 	{ 0, 255 },
148c43e99fdSEd Maste 	/* old=  0, write:  0, read:add, close:  0 */
149c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_ADD },
150c43e99fdSEd Maste 	/* old=  0, write:  0, read:add, close:add */
151c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_ADD },
152c43e99fdSEd Maste 	/* old=  0, write:  0, read:add, close:del */
153c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_ADD },
154c43e99fdSEd Maste 	/* old=  0, write:  0, read:add, close:xxx */
155c43e99fdSEd Maste 	{ 0, 255 },
156c43e99fdSEd Maste 	/* old=  0, write:  0, read:del, close:  0 */
157c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_DEL },
158c43e99fdSEd Maste 	/* old=  0, write:  0, read:del, close:add */
159c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_ADD },
160c43e99fdSEd Maste 	/* old=  0, write:  0, read:del, close:del */
161c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_DEL },
162c43e99fdSEd Maste 	/* old=  0, write:  0, read:del, close:xxx */
163c43e99fdSEd Maste 	{ 0, 255 },
164c43e99fdSEd Maste 	/* old=  0, write:  0, read:xxx, close:  0 */
165c43e99fdSEd Maste 	{ 0, 255 },
166c43e99fdSEd Maste 	/* old=  0, write:  0, read:xxx, close:add */
167c43e99fdSEd Maste 	{ 0, 255 },
168c43e99fdSEd Maste 	/* old=  0, write:  0, read:xxx, close:del */
169c43e99fdSEd Maste 	{ 0, 255 },
170c43e99fdSEd Maste 	/* old=  0, write:  0, read:xxx, close:xxx */
171c43e99fdSEd Maste 	{ 0, 255 },
172c43e99fdSEd Maste 	/* old=  0, write:add, read:  0, close:  0 */
173c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_ADD },
174c43e99fdSEd Maste 	/* old=  0, write:add, read:  0, close:add */
175c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_ADD },
176c43e99fdSEd Maste 	/* old=  0, write:add, read:  0, close:del */
177c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_ADD },
178c43e99fdSEd Maste 	/* old=  0, write:add, read:  0, close:xxx */
179c43e99fdSEd Maste 	{ 0, 255 },
180c43e99fdSEd Maste 	/* old=  0, write:add, read:add, close:  0 */
181c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_ADD },
182c43e99fdSEd Maste 	/* old=  0, write:add, read:add, close:add */
183c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_ADD },
184c43e99fdSEd Maste 	/* old=  0, write:add, read:add, close:del */
185c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_ADD },
186c43e99fdSEd Maste 	/* old=  0, write:add, read:add, close:xxx */
187c43e99fdSEd Maste 	{ 0, 255 },
188c43e99fdSEd Maste 	/* old=  0, write:add, read:del, close:  0 */
189c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_ADD },
190c43e99fdSEd Maste 	/* old=  0, write:add, read:del, close:add */
191c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_ADD },
192c43e99fdSEd Maste 	/* old=  0, write:add, read:del, close:del */
193c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_ADD },
194c43e99fdSEd Maste 	/* old=  0, write:add, read:del, close:xxx */
195c43e99fdSEd Maste 	{ 0, 255 },
196c43e99fdSEd Maste 	/* old=  0, write:add, read:xxx, close:  0 */
197c43e99fdSEd Maste 	{ 0, 255 },
198c43e99fdSEd Maste 	/* old=  0, write:add, read:xxx, close:add */
199c43e99fdSEd Maste 	{ 0, 255 },
200c43e99fdSEd Maste 	/* old=  0, write:add, read:xxx, close:del */
201c43e99fdSEd Maste 	{ 0, 255 },
202c43e99fdSEd Maste 	/* old=  0, write:add, read:xxx, close:xxx */
203c43e99fdSEd Maste 	{ 0, 255 },
204c43e99fdSEd Maste 	/* old=  0, write:del, read:  0, close:  0 */
205c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_DEL },
206c43e99fdSEd Maste 	/* old=  0, write:del, read:  0, close:add */
207c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_ADD },
208c43e99fdSEd Maste 	/* old=  0, write:del, read:  0, close:del */
209c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
210c43e99fdSEd Maste 	/* old=  0, write:del, read:  0, close:xxx */
211c43e99fdSEd Maste 	{ 0, 255 },
212c43e99fdSEd Maste 	/* old=  0, write:del, read:add, close:  0 */
213c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_ADD },
214c43e99fdSEd Maste 	/* old=  0, write:del, read:add, close:add */
215c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_ADD },
216c43e99fdSEd Maste 	/* old=  0, write:del, read:add, close:del */
217c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_ADD },
218c43e99fdSEd Maste 	/* old=  0, write:del, read:add, close:xxx */
219c43e99fdSEd Maste 	{ 0, 255 },
220c43e99fdSEd Maste 	/* old=  0, write:del, read:del, close:  0 */
221c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_DEL },
222c43e99fdSEd Maste 	/* old=  0, write:del, read:del, close:add */
223c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_ADD },
224c43e99fdSEd Maste 	/* old=  0, write:del, read:del, close:del */
225c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
226c43e99fdSEd Maste 	/* old=  0, write:del, read:del, close:xxx */
227c43e99fdSEd Maste 	{ 0, 255 },
228c43e99fdSEd Maste 	/* old=  0, write:del, read:xxx, close:  0 */
229c43e99fdSEd Maste 	{ 0, 255 },
230c43e99fdSEd Maste 	/* old=  0, write:del, read:xxx, close:add */
231c43e99fdSEd Maste 	{ 0, 255 },
232c43e99fdSEd Maste 	/* old=  0, write:del, read:xxx, close:del */
233c43e99fdSEd Maste 	{ 0, 255 },
234c43e99fdSEd Maste 	/* old=  0, write:del, read:xxx, close:xxx */
235c43e99fdSEd Maste 	{ 0, 255 },
236c43e99fdSEd Maste 	/* old=  0, write:xxx, read:  0, close:  0 */
237c43e99fdSEd Maste 	{ 0, 255 },
238c43e99fdSEd Maste 	/* old=  0, write:xxx, read:  0, close:add */
239c43e99fdSEd Maste 	{ 0, 255 },
240c43e99fdSEd Maste 	/* old=  0, write:xxx, read:  0, close:del */
241c43e99fdSEd Maste 	{ 0, 255 },
242c43e99fdSEd Maste 	/* old=  0, write:xxx, read:  0, close:xxx */
243c43e99fdSEd Maste 	{ 0, 255 },
244c43e99fdSEd Maste 	/* old=  0, write:xxx, read:add, close:  0 */
245c43e99fdSEd Maste 	{ 0, 255 },
246c43e99fdSEd Maste 	/* old=  0, write:xxx, read:add, close:add */
247c43e99fdSEd Maste 	{ 0, 255 },
248c43e99fdSEd Maste 	/* old=  0, write:xxx, read:add, close:del */
249c43e99fdSEd Maste 	{ 0, 255 },
250c43e99fdSEd Maste 	/* old=  0, write:xxx, read:add, close:xxx */
251c43e99fdSEd Maste 	{ 0, 255 },
252c43e99fdSEd Maste 	/* old=  0, write:xxx, read:del, close:  0 */
253c43e99fdSEd Maste 	{ 0, 255 },
254c43e99fdSEd Maste 	/* old=  0, write:xxx, read:del, close:add */
255c43e99fdSEd Maste 	{ 0, 255 },
256c43e99fdSEd Maste 	/* old=  0, write:xxx, read:del, close:del */
257c43e99fdSEd Maste 	{ 0, 255 },
258c43e99fdSEd Maste 	/* old=  0, write:xxx, read:del, close:xxx */
259c43e99fdSEd Maste 	{ 0, 255 },
260c43e99fdSEd Maste 	/* old=  0, write:xxx, read:xxx, close:  0 */
261c43e99fdSEd Maste 	{ 0, 255 },
262c43e99fdSEd Maste 	/* old=  0, write:xxx, read:xxx, close:add */
263c43e99fdSEd Maste 	{ 0, 255 },
264c43e99fdSEd Maste 	/* old=  0, write:xxx, read:xxx, close:del */
265c43e99fdSEd Maste 	{ 0, 255 },
266c43e99fdSEd Maste 	/* old=  0, write:xxx, read:xxx, close:xxx */
267c43e99fdSEd Maste 	{ 0, 255 },
268c43e99fdSEd Maste 	/* old=  r, write:  0, read:  0, close:  0 */
269c43e99fdSEd Maste 	{ 0, 0 },
270c43e99fdSEd Maste 	/* old=  r, write:  0, read:  0, close:add */
271c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
272c43e99fdSEd Maste 	/* old=  r, write:  0, read:  0, close:del */
273c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
274c43e99fdSEd Maste 	/* old=  r, write:  0, read:  0, close:xxx */
275c43e99fdSEd Maste 	{ 0, 255 },
276c43e99fdSEd Maste 	/* old=  r, write:  0, read:add, close:  0 */
277c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
278c43e99fdSEd Maste 	/* old=  r, write:  0, read:add, close:add */
279c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
280c43e99fdSEd Maste 	/* old=  r, write:  0, read:add, close:del */
281c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
282c43e99fdSEd Maste 	/* old=  r, write:  0, read:add, close:xxx */
283c43e99fdSEd Maste 	{ 0, 255 },
284c43e99fdSEd Maste 	/* old=  r, write:  0, read:del, close:  0 */
285c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_DEL },
286c43e99fdSEd Maste 	/* old=  r, write:  0, read:del, close:add */
287c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
288c43e99fdSEd Maste 	/* old=  r, write:  0, read:del, close:del */
289c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_DEL },
290c43e99fdSEd Maste 	/* old=  r, write:  0, read:del, close:xxx */
291c43e99fdSEd Maste 	{ 0, 255 },
292c43e99fdSEd Maste 	/* old=  r, write:  0, read:xxx, close:  0 */
293c43e99fdSEd Maste 	{ 0, 255 },
294c43e99fdSEd Maste 	/* old=  r, write:  0, read:xxx, close:add */
295c43e99fdSEd Maste 	{ 0, 255 },
296c43e99fdSEd Maste 	/* old=  r, write:  0, read:xxx, close:del */
297c43e99fdSEd Maste 	{ 0, 255 },
298c43e99fdSEd Maste 	/* old=  r, write:  0, read:xxx, close:xxx */
299c43e99fdSEd Maste 	{ 0, 255 },
300c43e99fdSEd Maste 	/* old=  r, write:add, read:  0, close:  0 */
301c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
302c43e99fdSEd Maste 	/* old=  r, write:add, read:  0, close:add */
303c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
304c43e99fdSEd Maste 	/* old=  r, write:add, read:  0, close:del */
305c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
306c43e99fdSEd Maste 	/* old=  r, write:add, read:  0, close:xxx */
307c43e99fdSEd Maste 	{ 0, 255 },
308c43e99fdSEd Maste 	/* old=  r, write:add, read:add, close:  0 */
309c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
310c43e99fdSEd Maste 	/* old=  r, write:add, read:add, close:add */
311c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
312c43e99fdSEd Maste 	/* old=  r, write:add, read:add, close:del */
313c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
314c43e99fdSEd Maste 	/* old=  r, write:add, read:add, close:xxx */
315c43e99fdSEd Maste 	{ 0, 255 },
316c43e99fdSEd Maste 	/* old=  r, write:add, read:del, close:  0 */
317c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
318c43e99fdSEd Maste 	/* old=  r, write:add, read:del, close:add */
319c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
320c43e99fdSEd Maste 	/* old=  r, write:add, read:del, close:del */
321c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
322c43e99fdSEd Maste 	/* old=  r, write:add, read:del, close:xxx */
323c43e99fdSEd Maste 	{ 0, 255 },
324c43e99fdSEd Maste 	/* old=  r, write:add, read:xxx, close:  0 */
325c43e99fdSEd Maste 	{ 0, 255 },
326c43e99fdSEd Maste 	/* old=  r, write:add, read:xxx, close:add */
327c43e99fdSEd Maste 	{ 0, 255 },
328c43e99fdSEd Maste 	/* old=  r, write:add, read:xxx, close:del */
329c43e99fdSEd Maste 	{ 0, 255 },
330c43e99fdSEd Maste 	/* old=  r, write:add, read:xxx, close:xxx */
331c43e99fdSEd Maste 	{ 0, 255 },
332c43e99fdSEd Maste 	/* old=  r, write:del, read:  0, close:  0 */
333c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
334c43e99fdSEd Maste 	/* old=  r, write:del, read:  0, close:add */
335c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
336c43e99fdSEd Maste 	/* old=  r, write:del, read:  0, close:del */
337c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
338c43e99fdSEd Maste 	/* old=  r, write:del, read:  0, close:xxx */
339c43e99fdSEd Maste 	{ 0, 255 },
340c43e99fdSEd Maste 	/* old=  r, write:del, read:add, close:  0 */
341c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
342c43e99fdSEd Maste 	/* old=  r, write:del, read:add, close:add */
343c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
344c43e99fdSEd Maste 	/* old=  r, write:del, read:add, close:del */
345c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
346c43e99fdSEd Maste 	/* old=  r, write:del, read:add, close:xxx */
347c43e99fdSEd Maste 	{ 0, 255 },
348c43e99fdSEd Maste 	/* old=  r, write:del, read:del, close:  0 */
349c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_DEL },
350c43e99fdSEd Maste 	/* old=  r, write:del, read:del, close:add */
351c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
352c43e99fdSEd Maste 	/* old=  r, write:del, read:del, close:del */
353c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
354c43e99fdSEd Maste 	/* old=  r, write:del, read:del, close:xxx */
355c43e99fdSEd Maste 	{ 0, 255 },
356c43e99fdSEd Maste 	/* old=  r, write:del, read:xxx, close:  0 */
357c43e99fdSEd Maste 	{ 0, 255 },
358c43e99fdSEd Maste 	/* old=  r, write:del, read:xxx, close:add */
359c43e99fdSEd Maste 	{ 0, 255 },
360c43e99fdSEd Maste 	/* old=  r, write:del, read:xxx, close:del */
361c43e99fdSEd Maste 	{ 0, 255 },
362c43e99fdSEd Maste 	/* old=  r, write:del, read:xxx, close:xxx */
363c43e99fdSEd Maste 	{ 0, 255 },
364c43e99fdSEd Maste 	/* old=  r, write:xxx, read:  0, close:  0 */
365c43e99fdSEd Maste 	{ 0, 255 },
366c43e99fdSEd Maste 	/* old=  r, write:xxx, read:  0, close:add */
367c43e99fdSEd Maste 	{ 0, 255 },
368c43e99fdSEd Maste 	/* old=  r, write:xxx, read:  0, close:del */
369c43e99fdSEd Maste 	{ 0, 255 },
370c43e99fdSEd Maste 	/* old=  r, write:xxx, read:  0, close:xxx */
371c43e99fdSEd Maste 	{ 0, 255 },
372c43e99fdSEd Maste 	/* old=  r, write:xxx, read:add, close:  0 */
373c43e99fdSEd Maste 	{ 0, 255 },
374c43e99fdSEd Maste 	/* old=  r, write:xxx, read:add, close:add */
375c43e99fdSEd Maste 	{ 0, 255 },
376c43e99fdSEd Maste 	/* old=  r, write:xxx, read:add, close:del */
377c43e99fdSEd Maste 	{ 0, 255 },
378c43e99fdSEd Maste 	/* old=  r, write:xxx, read:add, close:xxx */
379c43e99fdSEd Maste 	{ 0, 255 },
380c43e99fdSEd Maste 	/* old=  r, write:xxx, read:del, close:  0 */
381c43e99fdSEd Maste 	{ 0, 255 },
382c43e99fdSEd Maste 	/* old=  r, write:xxx, read:del, close:add */
383c43e99fdSEd Maste 	{ 0, 255 },
384c43e99fdSEd Maste 	/* old=  r, write:xxx, read:del, close:del */
385c43e99fdSEd Maste 	{ 0, 255 },
386c43e99fdSEd Maste 	/* old=  r, write:xxx, read:del, close:xxx */
387c43e99fdSEd Maste 	{ 0, 255 },
388c43e99fdSEd Maste 	/* old=  r, write:xxx, read:xxx, close:  0 */
389c43e99fdSEd Maste 	{ 0, 255 },
390c43e99fdSEd Maste 	/* old=  r, write:xxx, read:xxx, close:add */
391c43e99fdSEd Maste 	{ 0, 255 },
392c43e99fdSEd Maste 	/* old=  r, write:xxx, read:xxx, close:del */
393c43e99fdSEd Maste 	{ 0, 255 },
394c43e99fdSEd Maste 	/* old=  r, write:xxx, read:xxx, close:xxx */
395c43e99fdSEd Maste 	{ 0, 255 },
396c43e99fdSEd Maste 	/* old=  w, write:  0, read:  0, close:  0 */
397c43e99fdSEd Maste 	{ 0, 0 },
398c43e99fdSEd Maste 	/* old=  w, write:  0, read:  0, close:add */
399c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
400c43e99fdSEd Maste 	/* old=  w, write:  0, read:  0, close:del */
401c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
402c43e99fdSEd Maste 	/* old=  w, write:  0, read:  0, close:xxx */
403c43e99fdSEd Maste 	{ 0, 255 },
404c43e99fdSEd Maste 	/* old=  w, write:  0, read:add, close:  0 */
405c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
406c43e99fdSEd Maste 	/* old=  w, write:  0, read:add, close:add */
407c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
408c43e99fdSEd Maste 	/* old=  w, write:  0, read:add, close:del */
409c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
410c43e99fdSEd Maste 	/* old=  w, write:  0, read:add, close:xxx */
411c43e99fdSEd Maste 	{ 0, 255 },
412c43e99fdSEd Maste 	/* old=  w, write:  0, read:del, close:  0 */
413c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
414c43e99fdSEd Maste 	/* old=  w, write:  0, read:del, close:add */
415c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
416c43e99fdSEd Maste 	/* old=  w, write:  0, read:del, close:del */
417c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
418c43e99fdSEd Maste 	/* old=  w, write:  0, read:del, close:xxx */
419c43e99fdSEd Maste 	{ 0, 255 },
420c43e99fdSEd Maste 	/* old=  w, write:  0, read:xxx, close:  0 */
421c43e99fdSEd Maste 	{ 0, 255 },
422c43e99fdSEd Maste 	/* old=  w, write:  0, read:xxx, close:add */
423c43e99fdSEd Maste 	{ 0, 255 },
424c43e99fdSEd Maste 	/* old=  w, write:  0, read:xxx, close:del */
425c43e99fdSEd Maste 	{ 0, 255 },
426c43e99fdSEd Maste 	/* old=  w, write:  0, read:xxx, close:xxx */
427c43e99fdSEd Maste 	{ 0, 255 },
428c43e99fdSEd Maste 	/* old=  w, write:add, read:  0, close:  0 */
429c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
430c43e99fdSEd Maste 	/* old=  w, write:add, read:  0, close:add */
431c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
432c43e99fdSEd Maste 	/* old=  w, write:add, read:  0, close:del */
433c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
434c43e99fdSEd Maste 	/* old=  w, write:add, read:  0, close:xxx */
435c43e99fdSEd Maste 	{ 0, 255 },
436c43e99fdSEd Maste 	/* old=  w, write:add, read:add, close:  0 */
437c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
438c43e99fdSEd Maste 	/* old=  w, write:add, read:add, close:add */
439c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
440c43e99fdSEd Maste 	/* old=  w, write:add, read:add, close:del */
441c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
442c43e99fdSEd Maste 	/* old=  w, write:add, read:add, close:xxx */
443c43e99fdSEd Maste 	{ 0, 255 },
444c43e99fdSEd Maste 	/* old=  w, write:add, read:del, close:  0 */
445c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
446c43e99fdSEd Maste 	/* old=  w, write:add, read:del, close:add */
447c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
448c43e99fdSEd Maste 	/* old=  w, write:add, read:del, close:del */
449c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
450c43e99fdSEd Maste 	/* old=  w, write:add, read:del, close:xxx */
451c43e99fdSEd Maste 	{ 0, 255 },
452c43e99fdSEd Maste 	/* old=  w, write:add, read:xxx, close:  0 */
453c43e99fdSEd Maste 	{ 0, 255 },
454c43e99fdSEd Maste 	/* old=  w, write:add, read:xxx, close:add */
455c43e99fdSEd Maste 	{ 0, 255 },
456c43e99fdSEd Maste 	/* old=  w, write:add, read:xxx, close:del */
457c43e99fdSEd Maste 	{ 0, 255 },
458c43e99fdSEd Maste 	/* old=  w, write:add, read:xxx, close:xxx */
459c43e99fdSEd Maste 	{ 0, 255 },
460c43e99fdSEd Maste 	/* old=  w, write:del, read:  0, close:  0 */
461c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_DEL },
462c43e99fdSEd Maste 	/* old=  w, write:del, read:  0, close:add */
463c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
464c43e99fdSEd Maste 	/* old=  w, write:del, read:  0, close:del */
465c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
466c43e99fdSEd Maste 	/* old=  w, write:del, read:  0, close:xxx */
467c43e99fdSEd Maste 	{ 0, 255 },
468c43e99fdSEd Maste 	/* old=  w, write:del, read:add, close:  0 */
469c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
470c43e99fdSEd Maste 	/* old=  w, write:del, read:add, close:add */
471c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
472c43e99fdSEd Maste 	/* old=  w, write:del, read:add, close:del */
473c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
474c43e99fdSEd Maste 	/* old=  w, write:del, read:add, close:xxx */
475c43e99fdSEd Maste 	{ 0, 255 },
476c43e99fdSEd Maste 	/* old=  w, write:del, read:del, close:  0 */
477c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_DEL },
478c43e99fdSEd Maste 	/* old=  w, write:del, read:del, close:add */
479c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
480c43e99fdSEd Maste 	/* old=  w, write:del, read:del, close:del */
481c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
482c43e99fdSEd Maste 	/* old=  w, write:del, read:del, close:xxx */
483c43e99fdSEd Maste 	{ 0, 255 },
484c43e99fdSEd Maste 	/* old=  w, write:del, read:xxx, close:  0 */
485c43e99fdSEd Maste 	{ 0, 255 },
486c43e99fdSEd Maste 	/* old=  w, write:del, read:xxx, close:add */
487c43e99fdSEd Maste 	{ 0, 255 },
488c43e99fdSEd Maste 	/* old=  w, write:del, read:xxx, close:del */
489c43e99fdSEd Maste 	{ 0, 255 },
490c43e99fdSEd Maste 	/* old=  w, write:del, read:xxx, close:xxx */
491c43e99fdSEd Maste 	{ 0, 255 },
492c43e99fdSEd Maste 	/* old=  w, write:xxx, read:  0, close:  0 */
493c43e99fdSEd Maste 	{ 0, 255 },
494c43e99fdSEd Maste 	/* old=  w, write:xxx, read:  0, close:add */
495c43e99fdSEd Maste 	{ 0, 255 },
496c43e99fdSEd Maste 	/* old=  w, write:xxx, read:  0, close:del */
497c43e99fdSEd Maste 	{ 0, 255 },
498c43e99fdSEd Maste 	/* old=  w, write:xxx, read:  0, close:xxx */
499c43e99fdSEd Maste 	{ 0, 255 },
500c43e99fdSEd Maste 	/* old=  w, write:xxx, read:add, close:  0 */
501c43e99fdSEd Maste 	{ 0, 255 },
502c43e99fdSEd Maste 	/* old=  w, write:xxx, read:add, close:add */
503c43e99fdSEd Maste 	{ 0, 255 },
504c43e99fdSEd Maste 	/* old=  w, write:xxx, read:add, close:del */
505c43e99fdSEd Maste 	{ 0, 255 },
506c43e99fdSEd Maste 	/* old=  w, write:xxx, read:add, close:xxx */
507c43e99fdSEd Maste 	{ 0, 255 },
508c43e99fdSEd Maste 	/* old=  w, write:xxx, read:del, close:  0 */
509c43e99fdSEd Maste 	{ 0, 255 },
510c43e99fdSEd Maste 	/* old=  w, write:xxx, read:del, close:add */
511c43e99fdSEd Maste 	{ 0, 255 },
512c43e99fdSEd Maste 	/* old=  w, write:xxx, read:del, close:del */
513c43e99fdSEd Maste 	{ 0, 255 },
514c43e99fdSEd Maste 	/* old=  w, write:xxx, read:del, close:xxx */
515c43e99fdSEd Maste 	{ 0, 255 },
516c43e99fdSEd Maste 	/* old=  w, write:xxx, read:xxx, close:  0 */
517c43e99fdSEd Maste 	{ 0, 255 },
518c43e99fdSEd Maste 	/* old=  w, write:xxx, read:xxx, close:add */
519c43e99fdSEd Maste 	{ 0, 255 },
520c43e99fdSEd Maste 	/* old=  w, write:xxx, read:xxx, close:del */
521c43e99fdSEd Maste 	{ 0, 255 },
522c43e99fdSEd Maste 	/* old=  w, write:xxx, read:xxx, close:xxx */
523c43e99fdSEd Maste 	{ 0, 255 },
524c43e99fdSEd Maste 	/* old= rw, write:  0, read:  0, close:  0 */
525c43e99fdSEd Maste 	{ 0, 0 },
526c43e99fdSEd Maste 	/* old= rw, write:  0, read:  0, close:add */
527c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
528c43e99fdSEd Maste 	/* old= rw, write:  0, read:  0, close:del */
529c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
530c43e99fdSEd Maste 	/* old= rw, write:  0, read:  0, close:xxx */
531c43e99fdSEd Maste 	{ 0, 255 },
532c43e99fdSEd Maste 	/* old= rw, write:  0, read:add, close:  0 */
533c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
534c43e99fdSEd Maste 	/* old= rw, write:  0, read:add, close:add */
535c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
536c43e99fdSEd Maste 	/* old= rw, write:  0, read:add, close:del */
537c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
538c43e99fdSEd Maste 	/* old= rw, write:  0, read:add, close:xxx */
539c43e99fdSEd Maste 	{ 0, 255 },
540c43e99fdSEd Maste 	/* old= rw, write:  0, read:del, close:  0 */
541c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
542c43e99fdSEd Maste 	/* old= rw, write:  0, read:del, close:add */
543c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
544c43e99fdSEd Maste 	/* old= rw, write:  0, read:del, close:del */
545c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
546c43e99fdSEd Maste 	/* old= rw, write:  0, read:del, close:xxx */
547c43e99fdSEd Maste 	{ 0, 255 },
548c43e99fdSEd Maste 	/* old= rw, write:  0, read:xxx, close:  0 */
549c43e99fdSEd Maste 	{ 0, 255 },
550c43e99fdSEd Maste 	/* old= rw, write:  0, read:xxx, close:add */
551c43e99fdSEd Maste 	{ 0, 255 },
552c43e99fdSEd Maste 	/* old= rw, write:  0, read:xxx, close:del */
553c43e99fdSEd Maste 	{ 0, 255 },
554c43e99fdSEd Maste 	/* old= rw, write:  0, read:xxx, close:xxx */
555c43e99fdSEd Maste 	{ 0, 255 },
556c43e99fdSEd Maste 	/* old= rw, write:add, read:  0, close:  0 */
557c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
558c43e99fdSEd Maste 	/* old= rw, write:add, read:  0, close:add */
559c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
560c43e99fdSEd Maste 	/* old= rw, write:add, read:  0, close:del */
561c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
562c43e99fdSEd Maste 	/* old= rw, write:add, read:  0, close:xxx */
563c43e99fdSEd Maste 	{ 0, 255 },
564c43e99fdSEd Maste 	/* old= rw, write:add, read:add, close:  0 */
565c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
566c43e99fdSEd Maste 	/* old= rw, write:add, read:add, close:add */
567c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
568c43e99fdSEd Maste 	/* old= rw, write:add, read:add, close:del */
569c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
570c43e99fdSEd Maste 	/* old= rw, write:add, read:add, close:xxx */
571c43e99fdSEd Maste 	{ 0, 255 },
572c43e99fdSEd Maste 	/* old= rw, write:add, read:del, close:  0 */
573c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
574c43e99fdSEd Maste 	/* old= rw, write:add, read:del, close:add */
575c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
576c43e99fdSEd Maste 	/* old= rw, write:add, read:del, close:del */
577c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
578c43e99fdSEd Maste 	/* old= rw, write:add, read:del, close:xxx */
579c43e99fdSEd Maste 	{ 0, 255 },
580c43e99fdSEd Maste 	/* old= rw, write:add, read:xxx, close:  0 */
581c43e99fdSEd Maste 	{ 0, 255 },
582c43e99fdSEd Maste 	/* old= rw, write:add, read:xxx, close:add */
583c43e99fdSEd Maste 	{ 0, 255 },
584c43e99fdSEd Maste 	/* old= rw, write:add, read:xxx, close:del */
585c43e99fdSEd Maste 	{ 0, 255 },
586c43e99fdSEd Maste 	/* old= rw, write:add, read:xxx, close:xxx */
587c43e99fdSEd Maste 	{ 0, 255 },
588c43e99fdSEd Maste 	/* old= rw, write:del, read:  0, close:  0 */
589c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
590c43e99fdSEd Maste 	/* old= rw, write:del, read:  0, close:add */
591c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
592c43e99fdSEd Maste 	/* old= rw, write:del, read:  0, close:del */
593c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
594c43e99fdSEd Maste 	/* old= rw, write:del, read:  0, close:xxx */
595c43e99fdSEd Maste 	{ 0, 255 },
596c43e99fdSEd Maste 	/* old= rw, write:del, read:add, close:  0 */
597c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
598c43e99fdSEd Maste 	/* old= rw, write:del, read:add, close:add */
599c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
600c43e99fdSEd Maste 	/* old= rw, write:del, read:add, close:del */
601c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
602c43e99fdSEd Maste 	/* old= rw, write:del, read:add, close:xxx */
603c43e99fdSEd Maste 	{ 0, 255 },
604c43e99fdSEd Maste 	/* old= rw, write:del, read:del, close:  0 */
605c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_DEL },
606c43e99fdSEd Maste 	/* old= rw, write:del, read:del, close:add */
607c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
608c43e99fdSEd Maste 	/* old= rw, write:del, read:del, close:del */
609c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
610c43e99fdSEd Maste 	/* old= rw, write:del, read:del, close:xxx */
611c43e99fdSEd Maste 	{ 0, 255 },
612c43e99fdSEd Maste 	/* old= rw, write:del, read:xxx, close:  0 */
613c43e99fdSEd Maste 	{ 0, 255 },
614c43e99fdSEd Maste 	/* old= rw, write:del, read:xxx, close:add */
615c43e99fdSEd Maste 	{ 0, 255 },
616c43e99fdSEd Maste 	/* old= rw, write:del, read:xxx, close:del */
617c43e99fdSEd Maste 	{ 0, 255 },
618c43e99fdSEd Maste 	/* old= rw, write:del, read:xxx, close:xxx */
619c43e99fdSEd Maste 	{ 0, 255 },
620c43e99fdSEd Maste 	/* old= rw, write:xxx, read:  0, close:  0 */
621c43e99fdSEd Maste 	{ 0, 255 },
622c43e99fdSEd Maste 	/* old= rw, write:xxx, read:  0, close:add */
623c43e99fdSEd Maste 	{ 0, 255 },
624c43e99fdSEd Maste 	/* old= rw, write:xxx, read:  0, close:del */
625c43e99fdSEd Maste 	{ 0, 255 },
626c43e99fdSEd Maste 	/* old= rw, write:xxx, read:  0, close:xxx */
627c43e99fdSEd Maste 	{ 0, 255 },
628c43e99fdSEd Maste 	/* old= rw, write:xxx, read:add, close:  0 */
629c43e99fdSEd Maste 	{ 0, 255 },
630c43e99fdSEd Maste 	/* old= rw, write:xxx, read:add, close:add */
631c43e99fdSEd Maste 	{ 0, 255 },
632c43e99fdSEd Maste 	/* old= rw, write:xxx, read:add, close:del */
633c43e99fdSEd Maste 	{ 0, 255 },
634c43e99fdSEd Maste 	/* old= rw, write:xxx, read:add, close:xxx */
635c43e99fdSEd Maste 	{ 0, 255 },
636c43e99fdSEd Maste 	/* old= rw, write:xxx, read:del, close:  0 */
637c43e99fdSEd Maste 	{ 0, 255 },
638c43e99fdSEd Maste 	/* old= rw, write:xxx, read:del, close:add */
639c43e99fdSEd Maste 	{ 0, 255 },
640c43e99fdSEd Maste 	/* old= rw, write:xxx, read:del, close:del */
641c43e99fdSEd Maste 	{ 0, 255 },
642c43e99fdSEd Maste 	/* old= rw, write:xxx, read:del, close:xxx */
643c43e99fdSEd Maste 	{ 0, 255 },
644c43e99fdSEd Maste 	/* old= rw, write:xxx, read:xxx, close:  0 */
645c43e99fdSEd Maste 	{ 0, 255 },
646c43e99fdSEd Maste 	/* old= rw, write:xxx, read:xxx, close:add */
647c43e99fdSEd Maste 	{ 0, 255 },
648c43e99fdSEd Maste 	/* old= rw, write:xxx, read:xxx, close:del */
649c43e99fdSEd Maste 	{ 0, 255 },
650c43e99fdSEd Maste 	/* old= rw, write:xxx, read:xxx, close:xxx */
651c43e99fdSEd Maste 	{ 0, 255 },
652c43e99fdSEd Maste 	/* old=  c, write:  0, read:  0, close:  0 */
653c43e99fdSEd Maste 	{ 0, 0 },
654c43e99fdSEd Maste 	/* old=  c, write:  0, read:  0, close:add */
655c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
656c43e99fdSEd Maste 	/* old=  c, write:  0, read:  0, close:del */
657c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_DEL },
658c43e99fdSEd Maste 	/* old=  c, write:  0, read:  0, close:xxx */
659c43e99fdSEd Maste 	{ 0, 255 },
660c43e99fdSEd Maste 	/* old=  c, write:  0, read:add, close:  0 */
661c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
662c43e99fdSEd Maste 	/* old=  c, write:  0, read:add, close:add */
663c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
664c43e99fdSEd Maste 	/* old=  c, write:  0, read:add, close:del */
665c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
666c43e99fdSEd Maste 	/* old=  c, write:  0, read:add, close:xxx */
667c43e99fdSEd Maste 	{ 0, 255 },
668c43e99fdSEd Maste 	/* old=  c, write:  0, read:del, close:  0 */
669c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
670c43e99fdSEd Maste 	/* old=  c, write:  0, read:del, close:add */
671c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
672c43e99fdSEd Maste 	/* old=  c, write:  0, read:del, close:del */
673c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_DEL },
674c43e99fdSEd Maste 	/* old=  c, write:  0, read:del, close:xxx */
675c43e99fdSEd Maste 	{ 0, 255 },
676c43e99fdSEd Maste 	/* old=  c, write:  0, read:xxx, close:  0 */
677c43e99fdSEd Maste 	{ 0, 255 },
678c43e99fdSEd Maste 	/* old=  c, write:  0, read:xxx, close:add */
679c43e99fdSEd Maste 	{ 0, 255 },
680c43e99fdSEd Maste 	/* old=  c, write:  0, read:xxx, close:del */
681c43e99fdSEd Maste 	{ 0, 255 },
682c43e99fdSEd Maste 	/* old=  c, write:  0, read:xxx, close:xxx */
683c43e99fdSEd Maste 	{ 0, 255 },
684c43e99fdSEd Maste 	/* old=  c, write:add, read:  0, close:  0 */
685c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
686c43e99fdSEd Maste 	/* old=  c, write:add, read:  0, close:add */
687c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
688c43e99fdSEd Maste 	/* old=  c, write:add, read:  0, close:del */
689c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
690c43e99fdSEd Maste 	/* old=  c, write:add, read:  0, close:xxx */
691c43e99fdSEd Maste 	{ 0, 255 },
692c43e99fdSEd Maste 	/* old=  c, write:add, read:add, close:  0 */
693c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
694c43e99fdSEd Maste 	/* old=  c, write:add, read:add, close:add */
695c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
696c43e99fdSEd Maste 	/* old=  c, write:add, read:add, close:del */
697c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
698c43e99fdSEd Maste 	/* old=  c, write:add, read:add, close:xxx */
699c43e99fdSEd Maste 	{ 0, 255 },
700c43e99fdSEd Maste 	/* old=  c, write:add, read:del, close:  0 */
701c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
702c43e99fdSEd Maste 	/* old=  c, write:add, read:del, close:add */
703c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
704c43e99fdSEd Maste 	/* old=  c, write:add, read:del, close:del */
705c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
706c43e99fdSEd Maste 	/* old=  c, write:add, read:del, close:xxx */
707c43e99fdSEd Maste 	{ 0, 255 },
708c43e99fdSEd Maste 	/* old=  c, write:add, read:xxx, close:  0 */
709c43e99fdSEd Maste 	{ 0, 255 },
710c43e99fdSEd Maste 	/* old=  c, write:add, read:xxx, close:add */
711c43e99fdSEd Maste 	{ 0, 255 },
712c43e99fdSEd Maste 	/* old=  c, write:add, read:xxx, close:del */
713c43e99fdSEd Maste 	{ 0, 255 },
714c43e99fdSEd Maste 	/* old=  c, write:add, read:xxx, close:xxx */
715c43e99fdSEd Maste 	{ 0, 255 },
716c43e99fdSEd Maste 	/* old=  c, write:del, read:  0, close:  0 */
717c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
718c43e99fdSEd Maste 	/* old=  c, write:del, read:  0, close:add */
719c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
720c43e99fdSEd Maste 	/* old=  c, write:del, read:  0, close:del */
721c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
722c43e99fdSEd Maste 	/* old=  c, write:del, read:  0, close:xxx */
723c43e99fdSEd Maste 	{ 0, 255 },
724c43e99fdSEd Maste 	/* old=  c, write:del, read:add, close:  0 */
725c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
726c43e99fdSEd Maste 	/* old=  c, write:del, read:add, close:add */
727c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
728c43e99fdSEd Maste 	/* old=  c, write:del, read:add, close:del */
729c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
730c43e99fdSEd Maste 	/* old=  c, write:del, read:add, close:xxx */
731c43e99fdSEd Maste 	{ 0, 255 },
732c43e99fdSEd Maste 	/* old=  c, write:del, read:del, close:  0 */
733c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
734c43e99fdSEd Maste 	/* old=  c, write:del, read:del, close:add */
735c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
736c43e99fdSEd Maste 	/* old=  c, write:del, read:del, close:del */
737c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
738c43e99fdSEd Maste 	/* old=  c, write:del, read:del, close:xxx */
739c43e99fdSEd Maste 	{ 0, 255 },
740c43e99fdSEd Maste 	/* old=  c, write:del, read:xxx, close:  0 */
741c43e99fdSEd Maste 	{ 0, 255 },
742c43e99fdSEd Maste 	/* old=  c, write:del, read:xxx, close:add */
743c43e99fdSEd Maste 	{ 0, 255 },
744c43e99fdSEd Maste 	/* old=  c, write:del, read:xxx, close:del */
745c43e99fdSEd Maste 	{ 0, 255 },
746c43e99fdSEd Maste 	/* old=  c, write:del, read:xxx, close:xxx */
747c43e99fdSEd Maste 	{ 0, 255 },
748c43e99fdSEd Maste 	/* old=  c, write:xxx, read:  0, close:  0 */
749c43e99fdSEd Maste 	{ 0, 255 },
750c43e99fdSEd Maste 	/* old=  c, write:xxx, read:  0, close:add */
751c43e99fdSEd Maste 	{ 0, 255 },
752c43e99fdSEd Maste 	/* old=  c, write:xxx, read:  0, close:del */
753c43e99fdSEd Maste 	{ 0, 255 },
754c43e99fdSEd Maste 	/* old=  c, write:xxx, read:  0, close:xxx */
755c43e99fdSEd Maste 	{ 0, 255 },
756c43e99fdSEd Maste 	/* old=  c, write:xxx, read:add, close:  0 */
757c43e99fdSEd Maste 	{ 0, 255 },
758c43e99fdSEd Maste 	/* old=  c, write:xxx, read:add, close:add */
759c43e99fdSEd Maste 	{ 0, 255 },
760c43e99fdSEd Maste 	/* old=  c, write:xxx, read:add, close:del */
761c43e99fdSEd Maste 	{ 0, 255 },
762c43e99fdSEd Maste 	/* old=  c, write:xxx, read:add, close:xxx */
763c43e99fdSEd Maste 	{ 0, 255 },
764c43e99fdSEd Maste 	/* old=  c, write:xxx, read:del, close:  0 */
765c43e99fdSEd Maste 	{ 0, 255 },
766c43e99fdSEd Maste 	/* old=  c, write:xxx, read:del, close:add */
767c43e99fdSEd Maste 	{ 0, 255 },
768c43e99fdSEd Maste 	/* old=  c, write:xxx, read:del, close:del */
769c43e99fdSEd Maste 	{ 0, 255 },
770c43e99fdSEd Maste 	/* old=  c, write:xxx, read:del, close:xxx */
771c43e99fdSEd Maste 	{ 0, 255 },
772c43e99fdSEd Maste 	/* old=  c, write:xxx, read:xxx, close:  0 */
773c43e99fdSEd Maste 	{ 0, 255 },
774c43e99fdSEd Maste 	/* old=  c, write:xxx, read:xxx, close:add */
775c43e99fdSEd Maste 	{ 0, 255 },
776c43e99fdSEd Maste 	/* old=  c, write:xxx, read:xxx, close:del */
777c43e99fdSEd Maste 	{ 0, 255 },
778c43e99fdSEd Maste 	/* old=  c, write:xxx, read:xxx, close:xxx */
779c43e99fdSEd Maste 	{ 0, 255 },
780c43e99fdSEd Maste 	/* old= cr, write:  0, read:  0, close:  0 */
781c43e99fdSEd Maste 	{ 0, 0 },
782c43e99fdSEd Maste 	/* old= cr, write:  0, read:  0, close:add */
783c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
784c43e99fdSEd Maste 	/* old= cr, write:  0, read:  0, close:del */
785c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
786c43e99fdSEd Maste 	/* old= cr, write:  0, read:  0, close:xxx */
787c43e99fdSEd Maste 	{ 0, 255 },
788c43e99fdSEd Maste 	/* old= cr, write:  0, read:add, close:  0 */
789c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
790c43e99fdSEd Maste 	/* old= cr, write:  0, read:add, close:add */
791c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
792c43e99fdSEd Maste 	/* old= cr, write:  0, read:add, close:del */
793c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
794c43e99fdSEd Maste 	/* old= cr, write:  0, read:add, close:xxx */
795c43e99fdSEd Maste 	{ 0, 255 },
796c43e99fdSEd Maste 	/* old= cr, write:  0, read:del, close:  0 */
797c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
798c43e99fdSEd Maste 	/* old= cr, write:  0, read:del, close:add */
799c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
800c43e99fdSEd Maste 	/* old= cr, write:  0, read:del, close:del */
801c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_DEL },
802c43e99fdSEd Maste 	/* old= cr, write:  0, read:del, close:xxx */
803c43e99fdSEd Maste 	{ 0, 255 },
804c43e99fdSEd Maste 	/* old= cr, write:  0, read:xxx, close:  0 */
805c43e99fdSEd Maste 	{ 0, 255 },
806c43e99fdSEd Maste 	/* old= cr, write:  0, read:xxx, close:add */
807c43e99fdSEd Maste 	{ 0, 255 },
808c43e99fdSEd Maste 	/* old= cr, write:  0, read:xxx, close:del */
809c43e99fdSEd Maste 	{ 0, 255 },
810c43e99fdSEd Maste 	/* old= cr, write:  0, read:xxx, close:xxx */
811c43e99fdSEd Maste 	{ 0, 255 },
812c43e99fdSEd Maste 	/* old= cr, write:add, read:  0, close:  0 */
813c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
814c43e99fdSEd Maste 	/* old= cr, write:add, read:  0, close:add */
815c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
816c43e99fdSEd Maste 	/* old= cr, write:add, read:  0, close:del */
817c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
818c43e99fdSEd Maste 	/* old= cr, write:add, read:  0, close:xxx */
819c43e99fdSEd Maste 	{ 0, 255 },
820c43e99fdSEd Maste 	/* old= cr, write:add, read:add, close:  0 */
821c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
822c43e99fdSEd Maste 	/* old= cr, write:add, read:add, close:add */
823c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
824c43e99fdSEd Maste 	/* old= cr, write:add, read:add, close:del */
825c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
826c43e99fdSEd Maste 	/* old= cr, write:add, read:add, close:xxx */
827c43e99fdSEd Maste 	{ 0, 255 },
828c43e99fdSEd Maste 	/* old= cr, write:add, read:del, close:  0 */
829c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
830c43e99fdSEd Maste 	/* old= cr, write:add, read:del, close:add */
831c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
832c43e99fdSEd Maste 	/* old= cr, write:add, read:del, close:del */
833c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
834c43e99fdSEd Maste 	/* old= cr, write:add, read:del, close:xxx */
835c43e99fdSEd Maste 	{ 0, 255 },
836c43e99fdSEd Maste 	/* old= cr, write:add, read:xxx, close:  0 */
837c43e99fdSEd Maste 	{ 0, 255 },
838c43e99fdSEd Maste 	/* old= cr, write:add, read:xxx, close:add */
839c43e99fdSEd Maste 	{ 0, 255 },
840c43e99fdSEd Maste 	/* old= cr, write:add, read:xxx, close:del */
841c43e99fdSEd Maste 	{ 0, 255 },
842c43e99fdSEd Maste 	/* old= cr, write:add, read:xxx, close:xxx */
843c43e99fdSEd Maste 	{ 0, 255 },
844c43e99fdSEd Maste 	/* old= cr, write:del, read:  0, close:  0 */
845c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
846c43e99fdSEd Maste 	/* old= cr, write:del, read:  0, close:add */
847c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
848c43e99fdSEd Maste 	/* old= cr, write:del, read:  0, close:del */
849c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
850c43e99fdSEd Maste 	/* old= cr, write:del, read:  0, close:xxx */
851c43e99fdSEd Maste 	{ 0, 255 },
852c43e99fdSEd Maste 	/* old= cr, write:del, read:add, close:  0 */
853c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
854c43e99fdSEd Maste 	/* old= cr, write:del, read:add, close:add */
855c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
856c43e99fdSEd Maste 	/* old= cr, write:del, read:add, close:del */
857c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
858c43e99fdSEd Maste 	/* old= cr, write:del, read:add, close:xxx */
859c43e99fdSEd Maste 	{ 0, 255 },
860c43e99fdSEd Maste 	/* old= cr, write:del, read:del, close:  0 */
861c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
862c43e99fdSEd Maste 	/* old= cr, write:del, read:del, close:add */
863c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
864c43e99fdSEd Maste 	/* old= cr, write:del, read:del, close:del */
865c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
866c43e99fdSEd Maste 	/* old= cr, write:del, read:del, close:xxx */
867c43e99fdSEd Maste 	{ 0, 255 },
868c43e99fdSEd Maste 	/* old= cr, write:del, read:xxx, close:  0 */
869c43e99fdSEd Maste 	{ 0, 255 },
870c43e99fdSEd Maste 	/* old= cr, write:del, read:xxx, close:add */
871c43e99fdSEd Maste 	{ 0, 255 },
872c43e99fdSEd Maste 	/* old= cr, write:del, read:xxx, close:del */
873c43e99fdSEd Maste 	{ 0, 255 },
874c43e99fdSEd Maste 	/* old= cr, write:del, read:xxx, close:xxx */
875c43e99fdSEd Maste 	{ 0, 255 },
876c43e99fdSEd Maste 	/* old= cr, write:xxx, read:  0, close:  0 */
877c43e99fdSEd Maste 	{ 0, 255 },
878c43e99fdSEd Maste 	/* old= cr, write:xxx, read:  0, close:add */
879c43e99fdSEd Maste 	{ 0, 255 },
880c43e99fdSEd Maste 	/* old= cr, write:xxx, read:  0, close:del */
881c43e99fdSEd Maste 	{ 0, 255 },
882c43e99fdSEd Maste 	/* old= cr, write:xxx, read:  0, close:xxx */
883c43e99fdSEd Maste 	{ 0, 255 },
884c43e99fdSEd Maste 	/* old= cr, write:xxx, read:add, close:  0 */
885c43e99fdSEd Maste 	{ 0, 255 },
886c43e99fdSEd Maste 	/* old= cr, write:xxx, read:add, close:add */
887c43e99fdSEd Maste 	{ 0, 255 },
888c43e99fdSEd Maste 	/* old= cr, write:xxx, read:add, close:del */
889c43e99fdSEd Maste 	{ 0, 255 },
890c43e99fdSEd Maste 	/* old= cr, write:xxx, read:add, close:xxx */
891c43e99fdSEd Maste 	{ 0, 255 },
892c43e99fdSEd Maste 	/* old= cr, write:xxx, read:del, close:  0 */
893c43e99fdSEd Maste 	{ 0, 255 },
894c43e99fdSEd Maste 	/* old= cr, write:xxx, read:del, close:add */
895c43e99fdSEd Maste 	{ 0, 255 },
896c43e99fdSEd Maste 	/* old= cr, write:xxx, read:del, close:del */
897c43e99fdSEd Maste 	{ 0, 255 },
898c43e99fdSEd Maste 	/* old= cr, write:xxx, read:del, close:xxx */
899c43e99fdSEd Maste 	{ 0, 255 },
900c43e99fdSEd Maste 	/* old= cr, write:xxx, read:xxx, close:  0 */
901c43e99fdSEd Maste 	{ 0, 255 },
902c43e99fdSEd Maste 	/* old= cr, write:xxx, read:xxx, close:add */
903c43e99fdSEd Maste 	{ 0, 255 },
904c43e99fdSEd Maste 	/* old= cr, write:xxx, read:xxx, close:del */
905c43e99fdSEd Maste 	{ 0, 255 },
906c43e99fdSEd Maste 	/* old= cr, write:xxx, read:xxx, close:xxx */
907c43e99fdSEd Maste 	{ 0, 255 },
908c43e99fdSEd Maste 	/* old= cw, write:  0, read:  0, close:  0 */
909c43e99fdSEd Maste 	{ 0, 0 },
910c43e99fdSEd Maste 	/* old= cw, write:  0, read:  0, close:add */
911c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
912c43e99fdSEd Maste 	/* old= cw, write:  0, read:  0, close:del */
913c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
914c43e99fdSEd Maste 	/* old= cw, write:  0, read:  0, close:xxx */
915c43e99fdSEd Maste 	{ 0, 255 },
916c43e99fdSEd Maste 	/* old= cw, write:  0, read:add, close:  0 */
917c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
918c43e99fdSEd Maste 	/* old= cw, write:  0, read:add, close:add */
919c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
920c43e99fdSEd Maste 	/* old= cw, write:  0, read:add, close:del */
921c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
922c43e99fdSEd Maste 	/* old= cw, write:  0, read:add, close:xxx */
923c43e99fdSEd Maste 	{ 0, 255 },
924c43e99fdSEd Maste 	/* old= cw, write:  0, read:del, close:  0 */
925c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
926c43e99fdSEd Maste 	/* old= cw, write:  0, read:del, close:add */
927c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
928c43e99fdSEd Maste 	/* old= cw, write:  0, read:del, close:del */
929c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
930c43e99fdSEd Maste 	/* old= cw, write:  0, read:del, close:xxx */
931c43e99fdSEd Maste 	{ 0, 255 },
932c43e99fdSEd Maste 	/* old= cw, write:  0, read:xxx, close:  0 */
933c43e99fdSEd Maste 	{ 0, 255 },
934c43e99fdSEd Maste 	/* old= cw, write:  0, read:xxx, close:add */
935c43e99fdSEd Maste 	{ 0, 255 },
936c43e99fdSEd Maste 	/* old= cw, write:  0, read:xxx, close:del */
937c43e99fdSEd Maste 	{ 0, 255 },
938c43e99fdSEd Maste 	/* old= cw, write:  0, read:xxx, close:xxx */
939c43e99fdSEd Maste 	{ 0, 255 },
940c43e99fdSEd Maste 	/* old= cw, write:add, read:  0, close:  0 */
941c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
942c43e99fdSEd Maste 	/* old= cw, write:add, read:  0, close:add */
943c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
944c43e99fdSEd Maste 	/* old= cw, write:add, read:  0, close:del */
945c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
946c43e99fdSEd Maste 	/* old= cw, write:add, read:  0, close:xxx */
947c43e99fdSEd Maste 	{ 0, 255 },
948c43e99fdSEd Maste 	/* old= cw, write:add, read:add, close:  0 */
949c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
950c43e99fdSEd Maste 	/* old= cw, write:add, read:add, close:add */
951c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
952c43e99fdSEd Maste 	/* old= cw, write:add, read:add, close:del */
953c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
954c43e99fdSEd Maste 	/* old= cw, write:add, read:add, close:xxx */
955c43e99fdSEd Maste 	{ 0, 255 },
956c43e99fdSEd Maste 	/* old= cw, write:add, read:del, close:  0 */
957c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
958c43e99fdSEd Maste 	/* old= cw, write:add, read:del, close:add */
959c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
960c43e99fdSEd Maste 	/* old= cw, write:add, read:del, close:del */
961c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
962c43e99fdSEd Maste 	/* old= cw, write:add, read:del, close:xxx */
963c43e99fdSEd Maste 	{ 0, 255 },
964c43e99fdSEd Maste 	/* old= cw, write:add, read:xxx, close:  0 */
965c43e99fdSEd Maste 	{ 0, 255 },
966c43e99fdSEd Maste 	/* old= cw, write:add, read:xxx, close:add */
967c43e99fdSEd Maste 	{ 0, 255 },
968c43e99fdSEd Maste 	/* old= cw, write:add, read:xxx, close:del */
969c43e99fdSEd Maste 	{ 0, 255 },
970c43e99fdSEd Maste 	/* old= cw, write:add, read:xxx, close:xxx */
971c43e99fdSEd Maste 	{ 0, 255 },
972c43e99fdSEd Maste 	/* old= cw, write:del, read:  0, close:  0 */
973c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
974c43e99fdSEd Maste 	/* old= cw, write:del, read:  0, close:add */
975c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
976c43e99fdSEd Maste 	/* old= cw, write:del, read:  0, close:del */
977c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
978c43e99fdSEd Maste 	/* old= cw, write:del, read:  0, close:xxx */
979c43e99fdSEd Maste 	{ 0, 255 },
980c43e99fdSEd Maste 	/* old= cw, write:del, read:add, close:  0 */
981c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
982c43e99fdSEd Maste 	/* old= cw, write:del, read:add, close:add */
983c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
984c43e99fdSEd Maste 	/* old= cw, write:del, read:add, close:del */
985c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
986c43e99fdSEd Maste 	/* old= cw, write:del, read:add, close:xxx */
987c43e99fdSEd Maste 	{ 0, 255 },
988c43e99fdSEd Maste 	/* old= cw, write:del, read:del, close:  0 */
989c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
990c43e99fdSEd Maste 	/* old= cw, write:del, read:del, close:add */
991c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
992c43e99fdSEd Maste 	/* old= cw, write:del, read:del, close:del */
993c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
994c43e99fdSEd Maste 	/* old= cw, write:del, read:del, close:xxx */
995c43e99fdSEd Maste 	{ 0, 255 },
996c43e99fdSEd Maste 	/* old= cw, write:del, read:xxx, close:  0 */
997c43e99fdSEd Maste 	{ 0, 255 },
998c43e99fdSEd Maste 	/* old= cw, write:del, read:xxx, close:add */
999c43e99fdSEd Maste 	{ 0, 255 },
1000c43e99fdSEd Maste 	/* old= cw, write:del, read:xxx, close:del */
1001c43e99fdSEd Maste 	{ 0, 255 },
1002c43e99fdSEd Maste 	/* old= cw, write:del, read:xxx, close:xxx */
1003c43e99fdSEd Maste 	{ 0, 255 },
1004c43e99fdSEd Maste 	/* old= cw, write:xxx, read:  0, close:  0 */
1005c43e99fdSEd Maste 	{ 0, 255 },
1006c43e99fdSEd Maste 	/* old= cw, write:xxx, read:  0, close:add */
1007c43e99fdSEd Maste 	{ 0, 255 },
1008c43e99fdSEd Maste 	/* old= cw, write:xxx, read:  0, close:del */
1009c43e99fdSEd Maste 	{ 0, 255 },
1010c43e99fdSEd Maste 	/* old= cw, write:xxx, read:  0, close:xxx */
1011c43e99fdSEd Maste 	{ 0, 255 },
1012c43e99fdSEd Maste 	/* old= cw, write:xxx, read:add, close:  0 */
1013c43e99fdSEd Maste 	{ 0, 255 },
1014c43e99fdSEd Maste 	/* old= cw, write:xxx, read:add, close:add */
1015c43e99fdSEd Maste 	{ 0, 255 },
1016c43e99fdSEd Maste 	/* old= cw, write:xxx, read:add, close:del */
1017c43e99fdSEd Maste 	{ 0, 255 },
1018c43e99fdSEd Maste 	/* old= cw, write:xxx, read:add, close:xxx */
1019c43e99fdSEd Maste 	{ 0, 255 },
1020c43e99fdSEd Maste 	/* old= cw, write:xxx, read:del, close:  0 */
1021c43e99fdSEd Maste 	{ 0, 255 },
1022c43e99fdSEd Maste 	/* old= cw, write:xxx, read:del, close:add */
1023c43e99fdSEd Maste 	{ 0, 255 },
1024c43e99fdSEd Maste 	/* old= cw, write:xxx, read:del, close:del */
1025c43e99fdSEd Maste 	{ 0, 255 },
1026c43e99fdSEd Maste 	/* old= cw, write:xxx, read:del, close:xxx */
1027c43e99fdSEd Maste 	{ 0, 255 },
1028c43e99fdSEd Maste 	/* old= cw, write:xxx, read:xxx, close:  0 */
1029c43e99fdSEd Maste 	{ 0, 255 },
1030c43e99fdSEd Maste 	/* old= cw, write:xxx, read:xxx, close:add */
1031c43e99fdSEd Maste 	{ 0, 255 },
1032c43e99fdSEd Maste 	/* old= cw, write:xxx, read:xxx, close:del */
1033c43e99fdSEd Maste 	{ 0, 255 },
1034c43e99fdSEd Maste 	/* old= cw, write:xxx, read:xxx, close:xxx */
1035c43e99fdSEd Maste 	{ 0, 255 },
1036c43e99fdSEd Maste 	/* old=crw, write:  0, read:  0, close:  0 */
1037c43e99fdSEd Maste 	{ 0, 0 },
1038c43e99fdSEd Maste 	/* old=crw, write:  0, read:  0, close:add */
1039c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1040c43e99fdSEd Maste 	/* old=crw, write:  0, read:  0, close:del */
1041c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
1042c43e99fdSEd Maste 	/* old=crw, write:  0, read:  0, close:xxx */
1043c43e99fdSEd Maste 	{ 0, 255 },
1044c43e99fdSEd Maste 	/* old=crw, write:  0, read:add, close:  0 */
1045c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1046c43e99fdSEd Maste 	/* old=crw, write:  0, read:add, close:add */
1047c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1048c43e99fdSEd Maste 	/* old=crw, write:  0, read:add, close:del */
1049c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
1050c43e99fdSEd Maste 	/* old=crw, write:  0, read:add, close:xxx */
1051c43e99fdSEd Maste 	{ 0, 255 },
1052c43e99fdSEd Maste 	/* old=crw, write:  0, read:del, close:  0 */
1053c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1054c43e99fdSEd Maste 	/* old=crw, write:  0, read:del, close:add */
1055c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1056c43e99fdSEd Maste 	/* old=crw, write:  0, read:del, close:del */
1057c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
1058c43e99fdSEd Maste 	/* old=crw, write:  0, read:del, close:xxx */
1059c43e99fdSEd Maste 	{ 0, 255 },
1060c43e99fdSEd Maste 	/* old=crw, write:  0, read:xxx, close:  0 */
1061c43e99fdSEd Maste 	{ 0, 255 },
1062c43e99fdSEd Maste 	/* old=crw, write:  0, read:xxx, close:add */
1063c43e99fdSEd Maste 	{ 0, 255 },
1064c43e99fdSEd Maste 	/* old=crw, write:  0, read:xxx, close:del */
1065c43e99fdSEd Maste 	{ 0, 255 },
1066c43e99fdSEd Maste 	/* old=crw, write:  0, read:xxx, close:xxx */
1067c43e99fdSEd Maste 	{ 0, 255 },
1068c43e99fdSEd Maste 	/* old=crw, write:add, read:  0, close:  0 */
1069c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1070c43e99fdSEd Maste 	/* old=crw, write:add, read:  0, close:add */
1071c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1072c43e99fdSEd Maste 	/* old=crw, write:add, read:  0, close:del */
1073c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
1074c43e99fdSEd Maste 	/* old=crw, write:add, read:  0, close:xxx */
1075c43e99fdSEd Maste 	{ 0, 255 },
1076c43e99fdSEd Maste 	/* old=crw, write:add, read:add, close:  0 */
1077c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1078c43e99fdSEd Maste 	/* old=crw, write:add, read:add, close:add */
1079c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1080c43e99fdSEd Maste 	/* old=crw, write:add, read:add, close:del */
1081c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT, EPOLL_CTL_MOD },
1082c43e99fdSEd Maste 	/* old=crw, write:add, read:add, close:xxx */
1083c43e99fdSEd Maste 	{ 0, 255 },
1084c43e99fdSEd Maste 	/* old=crw, write:add, read:del, close:  0 */
1085c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1086c43e99fdSEd Maste 	/* old=crw, write:add, read:del, close:add */
1087c43e99fdSEd Maste 	{ EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_MOD },
1088c43e99fdSEd Maste 	/* old=crw, write:add, read:del, close:del */
1089c43e99fdSEd Maste 	{ EPOLLOUT, EPOLL_CTL_MOD },
1090c43e99fdSEd Maste 	/* old=crw, write:add, read:del, close:xxx */
1091c43e99fdSEd Maste 	{ 0, 255 },
1092c43e99fdSEd Maste 	/* old=crw, write:add, read:xxx, close:  0 */
1093c43e99fdSEd Maste 	{ 0, 255 },
1094c43e99fdSEd Maste 	/* old=crw, write:add, read:xxx, close:add */
1095c43e99fdSEd Maste 	{ 0, 255 },
1096c43e99fdSEd Maste 	/* old=crw, write:add, read:xxx, close:del */
1097c43e99fdSEd Maste 	{ 0, 255 },
1098c43e99fdSEd Maste 	/* old=crw, write:add, read:xxx, close:xxx */
1099c43e99fdSEd Maste 	{ 0, 255 },
1100c43e99fdSEd Maste 	/* old=crw, write:del, read:  0, close:  0 */
1101c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
1102c43e99fdSEd Maste 	/* old=crw, write:del, read:  0, close:add */
1103c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
1104c43e99fdSEd Maste 	/* old=crw, write:del, read:  0, close:del */
1105c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
1106c43e99fdSEd Maste 	/* old=crw, write:del, read:  0, close:xxx */
1107c43e99fdSEd Maste 	{ 0, 255 },
1108c43e99fdSEd Maste 	/* old=crw, write:del, read:add, close:  0 */
1109c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
1110c43e99fdSEd Maste 	/* old=crw, write:del, read:add, close:add */
1111c43e99fdSEd Maste 	{ EPOLLIN|EPOLLRDHUP, EPOLL_CTL_MOD },
1112c43e99fdSEd Maste 	/* old=crw, write:del, read:add, close:del */
1113c43e99fdSEd Maste 	{ EPOLLIN, EPOLL_CTL_MOD },
1114c43e99fdSEd Maste 	/* old=crw, write:del, read:add, close:xxx */
1115c43e99fdSEd Maste 	{ 0, 255 },
1116c43e99fdSEd Maste 	/* old=crw, write:del, read:del, close:  0 */
1117c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
1118c43e99fdSEd Maste 	/* old=crw, write:del, read:del, close:add */
1119c43e99fdSEd Maste 	{ EPOLLRDHUP, EPOLL_CTL_MOD },
1120c43e99fdSEd Maste 	/* old=crw, write:del, read:del, close:del */
1121c43e99fdSEd Maste 	{ EPOLLIN|EPOLLOUT|EPOLLRDHUP, EPOLL_CTL_DEL },
1122c43e99fdSEd Maste 	/* old=crw, write:del, read:del, close:xxx */
1123c43e99fdSEd Maste 	{ 0, 255 },
1124c43e99fdSEd Maste 	/* old=crw, write:del, read:xxx, close:  0 */
1125c43e99fdSEd Maste 	{ 0, 255 },
1126c43e99fdSEd Maste 	/* old=crw, write:del, read:xxx, close:add */
1127c43e99fdSEd Maste 	{ 0, 255 },
1128c43e99fdSEd Maste 	/* old=crw, write:del, read:xxx, close:del */
1129c43e99fdSEd Maste 	{ 0, 255 },
1130c43e99fdSEd Maste 	/* old=crw, write:del, read:xxx, close:xxx */
1131c43e99fdSEd Maste 	{ 0, 255 },
1132c43e99fdSEd Maste 	/* old=crw, write:xxx, read:  0, close:  0 */
1133c43e99fdSEd Maste 	{ 0, 255 },
1134c43e99fdSEd Maste 	/* old=crw, write:xxx, read:  0, close:add */
1135c43e99fdSEd Maste 	{ 0, 255 },
1136c43e99fdSEd Maste 	/* old=crw, write:xxx, read:  0, close:del */
1137c43e99fdSEd Maste 	{ 0, 255 },
1138c43e99fdSEd Maste 	/* old=crw, write:xxx, read:  0, close:xxx */
1139c43e99fdSEd Maste 	{ 0, 255 },
1140c43e99fdSEd Maste 	/* old=crw, write:xxx, read:add, close:  0 */
1141c43e99fdSEd Maste 	{ 0, 255 },
1142c43e99fdSEd Maste 	/* old=crw, write:xxx, read:add, close:add */
1143c43e99fdSEd Maste 	{ 0, 255 },
1144c43e99fdSEd Maste 	/* old=crw, write:xxx, read:add, close:del */
1145c43e99fdSEd Maste 	{ 0, 255 },
1146c43e99fdSEd Maste 	/* old=crw, write:xxx, read:add, close:xxx */
1147c43e99fdSEd Maste 	{ 0, 255 },
1148c43e99fdSEd Maste 	/* old=crw, write:xxx, read:del, close:  0 */
1149c43e99fdSEd Maste 	{ 0, 255 },
1150c43e99fdSEd Maste 	/* old=crw, write:xxx, read:del, close:add */
1151c43e99fdSEd Maste 	{ 0, 255 },
1152c43e99fdSEd Maste 	/* old=crw, write:xxx, read:del, close:del */
1153c43e99fdSEd Maste 	{ 0, 255 },
1154c43e99fdSEd Maste 	/* old=crw, write:xxx, read:del, close:xxx */
1155c43e99fdSEd Maste 	{ 0, 255 },
1156c43e99fdSEd Maste 	/* old=crw, write:xxx, read:xxx, close:  0 */
1157c43e99fdSEd Maste 	{ 0, 255 },
1158c43e99fdSEd Maste 	/* old=crw, write:xxx, read:xxx, close:add */
1159c43e99fdSEd Maste 	{ 0, 255 },
1160c43e99fdSEd Maste 	/* old=crw, write:xxx, read:xxx, close:del */
1161c43e99fdSEd Maste 	{ 0, 255 },
1162c43e99fdSEd Maste 	/* old=crw, write:xxx, read:xxx, close:xxx */
1163c43e99fdSEd Maste 	{ 0, 255 },
1164c43e99fdSEd Maste };
1165c43e99fdSEd Maste 
1166c43e99fdSEd Maste #endif
1167