1 /* Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 * Use of this source code is governed by a BSD-style license that can be 3 * found in the LICENSE file. */ 4 5 #ifndef LIBRARIES_NACL_IO_INCLUDE_SYS_POLL_H_ 6 #define LIBRARIES_NACL_IO_INCLUDE_SYS_POLL_H_ 7 8 #include <stdint.h> 9 10 #include "sdk_util/macros.h" 11 12 EXTERN_C_BEGIN 13 14 /* This header adds definitions of flags and structures for use with poll on 15 * toolchains with 'C' libraries which do not normally supply poll. */ 16 17 /* Node state flags */ 18 #define POLLIN 0x0001 /* Will not block READ select/poll. */ 19 #define POLLPRI 0x0002 /* There is urgent data to read. */ 20 #define POLLOUT 0x0004 /* Will not block WRITE select/poll. */ 21 #define POLLERR 0x0008 /* Will not block EXECPT select/poll. */ 22 #define POLLHUP 0x0010 /* Connection closed on far side. */ 23 #define POLLNVAL 0x0020 /* Invalid FD. */ 24 25 /* Number of file descriptors. */ 26 typedef int nfds_t; 27 28 struct pollfd { 29 int fd; 30 uint16_t events; 31 uint16_t revents; 32 }; 33 34 int poll(struct pollfd *__fds, nfds_t __nfds, int __timeout); 35 36 EXTERN_C_END 37 38 #endif /* LIBRARIES_NACL_IO_INCLUDE_SYS_POLL_H_ */ 39