winpoll.h revision 23bcfa32fddbe29a8c4c40d3bcfa4693a555c177
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* $Id$ */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/** @file
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * NAT Network - poll(2) for winsock, definitions and declarations.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2013-2014 Oracle Corporation
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * available from http://www.virtualbox.org. This file is free software;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * you can redistribute it and/or modify it under the terms of the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * General Public License (GPL) as published by the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _WINPOLL_H_
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync#define _WINPOLL_H_
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync# include <iprt/cdefs.h>
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/**
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * WinSock2 has definition for POLL* and pollfd, but it defined for _WIN32_WINNT > 0x0600
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * and used in WSAPoll, which has very unclear history.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync# if(_WIN32_WINNT < 0x0600)
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync# define POLLRDNORM 0x0100
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync# define POLLRDBAND 0x0200
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define POLLIN (POLLRDNORM | POLLRDBAND)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define POLLPRI 0x0400
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define POLLWRNORM 0x0010
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define POLLOUT (POLLWRNORM)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define POLLWRBAND 0x0020
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define POLLERR 0x0001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define POLLHUP 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define POLLNVAL 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncstruct pollfd {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SOCKET fd;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SHORT events;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SHORT revents;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRT_C_DECLS_BEGIN
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncint RTWinPoll(struct pollfd *pFds, unsigned int nfds, int timeout, int *pNready);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRT_C_DECLS_END
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync