1 /* 2 * poll.h 3 * 4 * Copyright (c) 1997-8 Graham Barr <gbarr@pobox.com>. All rights reserved. 5 * This program is free software; you can redistribute it and/or 6 * modify it under the same terms as Perl itself. 7 * 8 */ 9 10 #ifndef POLL_H 11 # define POLL_H 12 13 #if (defined(HAS_POLL) && defined(I_POLL)) || defined(POLLWRBAND) 14 # include <poll.h> 15 #else 16 #ifdef HAS_SELECT 17 18 19 /* We shall emulate poll using select */ 20 21 #define EMULATE_POLL_WITH_SELECT 22 23 #ifdef poll 24 # undef poll 25 #endif 26 #define poll Perl_my_poll 27 28 typedef struct pollfd { 29 int fd; 30 short events; 31 short revents; 32 } pollfd_t; 33 34 #define POLLIN 0x0001 35 #define POLLPRI 0x0002 36 #define POLLOUT 0x0004 37 #define POLLRDNORM 0x0040 38 #define POLLWRNORM POLLOUT 39 #define POLLRDBAND 0x0080 40 #define POLLWRBAND 0x0100 41 #define POLLNORM POLLRDNORM 42 43 /* Return ONLY events (NON testable) */ 44 45 #define POLLERR 0x0008 46 #define POLLHUP 0x0010 47 #define POLLNVAL 0x0020 48 49 int poll (struct pollfd *, unsigned long, int); 50 51 #ifndef HAS_POLL 52 # define HAS_POLL 53 #endif 54 55 #endif /* HAS_SELECT */ 56 57 #endif /* I_POLL */ 58 59 #endif /* POLL_H */ 60 61