1 #ifndef _system_select_h
2 #define _system_select_h
4 Unix SMB/CIFS implementation.
6 select system include wrappers
8 Copyright (C) Andrew Tridgell 2004
10 ** NOTE! The following LGPL license applies to the replace
11 ** library. This does NOT imply that all of Samba is released
14 This library is free software; you can redistribute it and/or
15 modify it under the terms of the GNU Lesser General Public
16 License as published by the Free Software Foundation; either
17 version 3 of the License, or (at your option) any later version.
19 This library is distributed in the hope that it will be useful,
20 but WITHOUT ANY WARRANTY; without even the implied warranty of
21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 Lesser General Public License for more details.
24 You should have received a copy of the GNU Lesser General Public
25 License along with this library; if not, see <http://www.gnu.org/licenses/>.
29 #ifdef HAVE_SYS_SELECT_H
30 #include <sys/select.h>
33 #ifdef HAVE_SYS_EPOLL_H
34 #include <sys/epoll.h>
47 /* Type used for the number of file descriptors. */
48 typedef unsigned long int nfds_t
;
50 /* Data structure describing a polling request. */
53 int fd
; /* File descriptor to poll. */
54 short int events
; /* Types of events poller cares about. */
55 short int revents
; /* Types of events that actually occurred. */
58 /* Event types that can be polled for. These bits may be set in `events'
59 to indicate the interesting event types; they will appear in `revents'
60 to indicate the status of the file descriptor. */
61 #define POLLIN 0x001 /* There is data to read. */
62 #define POLLPRI 0x002 /* There is urgent data to read. */
63 #define POLLOUT 0x004 /* Writing now will not block. */
64 #define POLLRDNORM 0x040 /* Normal data may be read. */
65 #define POLLRDBAND 0x080 /* Priority data may be read. */
66 #define POLLWRNORM 0x100 /* Writing now will not block. */
67 #define POLLWRBAND 0x200 /* Priority data may be written. */
68 #define POLLERR 0x008 /* Error condition. */
69 #define POLLHUP 0x010 /* Hung up. */
70 #define POLLNVAL 0x020 /* Invalid polling request. */
72 /* define is in "replace.h" */
73 int rep_poll(struct pollfd
*fds
, nfds_t nfds
, int timeout
);