1/* Header for poll(2) emulation 2 Contributed by Paolo Bonzini. 3 4 Copyright 2001, 2002, 2003, 2007, 2009, 2010 Free Software Foundation, Inc. 5 6 This file is part of gnulib. 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2, or (at your option) 11 any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License along 19 with this program; if not, see <http://www.gnu.org/licenses/>. */ 20 21#ifndef _GL_POLL_H 22#define _GL_POLL_H 23 24/* fake a poll(2) environment */ 25#define POLLIN 0x0001/* any readable data available */ 26#define POLLPRI 0x0002/* OOB/Urgent readable data */ 27#define POLLOUT 0x0004/* file descriptor is writeable */ 28#define POLLERR 0x0008/* some poll error occurred */ 29#define POLLHUP 0x0010/* file descriptor was "hung up" */ 30#define POLLNVAL 0x0020/* requested events "invalid" */ 31#define POLLRDNORM 0x0040 32#define POLLRDBAND 0x0080 33#define POLLWRNORM 0x0100 34#define POLLWRBAND 0x0200 35 36struct pollfd 37{ 38int fd;/* which file descriptor to poll */ 39short events;/* events we are interested in */ 40short revents;/* events found on return */ 41}; 42 43typedefunsigned long nfds_t; 44 45externintpoll(struct pollfd *pfd, nfds_t nfd,int timeout); 46 47/* Define INFTIM only if doing so conforms to POSIX. */ 48#if !defined (_POSIX_C_SOURCE) && !defined (_XOPEN_SOURCE) 49#define INFTIM (-1) 50#endif 51 52#endif/* _GL_POLL_H */