From 0fc1650e091727971b3e3017f9f06cae6cdf71bb Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Wed, 9 Feb 2011 19:22:25 +0100 Subject: libreplace: poll based on select --- lib/replace/system/select.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'lib/replace/system/select.h') diff --git a/lib/replace/system/select.h b/lib/replace/system/select.h index da18de0cfc..11c5390d90 100644 --- a/lib/replace/system/select.h +++ b/lib/replace/system/select.h @@ -38,4 +38,40 @@ #define SELECT_CAST #endif +#ifdef HAVE_POLL + +#include + +#else + +/* Type used for the number of file descriptors. */ +typedef unsigned long int nfds_t; + +/* Data structure describing a polling request. */ +struct pollfd +{ + int fd; /* File descriptor to poll. */ + short int events; /* Types of events poller cares about. */ + short int revents; /* Types of events that actually occurred. */ +}; + +/* Event types that can be polled for. These bits may be set in `events' + to indicate the interesting event types; they will appear in `revents' + to indicate the status of the file descriptor. */ +#define POLLIN 0x001 /* There is data to read. */ +#define POLLPRI 0x002 /* There is urgent data to read. */ +#define POLLOUT 0x004 /* Writing now will not block. */ +#define POLLRDNORM 0x040 /* Normal data may be read. */ +#define POLLRDBAND 0x080 /* Priority data may be read. */ +#define POLLWRNORM 0x100 /* Writing now will not block. */ +#define POLLWRBAND 0x200 /* Priority data may be written. */ +#define POLLERR 0x008 /* Error condition. */ +#define POLLHUP 0x010 /* Hung up. */ +#define POLLNVAL 0x020 /* Invalid polling request. */ + +/* define is in "replace.h" */ +int rep_poll(struct pollfd *fds, nfds_t nfds, int timeout); + +#endif + #endif -- cgit