2003-12-13 22:53:17 +00:00
|
|
|
/* Copyright 2002,2003 Nick Mathewson, Roger Dingledine. */
|
2003-12-09 21:37:26 +00:00
|
|
|
/* See LICENSE for licensing information */
|
|
|
|
/* $Id$ */
|
2002-09-03 18:43:50 +00:00
|
|
|
|
|
|
|
#ifndef __FAKEPOLL_H
|
|
|
|
#define __FAKEPOLL_H
|
|
|
|
|
|
|
|
#include "orconfig.h"
|
|
|
|
|
2004-02-20 23:41:45 +00:00
|
|
|
#define POLL_NO_WARN
|
|
|
|
|
|
|
|
#if defined(HAVE_POLL_H)
|
|
|
|
#include <poll.h>
|
|
|
|
#elif defined(HAVE_SYS_POLL_H)
|
|
|
|
#include <sys/poll.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* If _POLL_EMUL_H_ is defined, then poll is just a just a thin wrapper around
|
|
|
|
* select. On Mac OS 10.3, this wrapper is kinda flakey, and we should
|
|
|
|
* use our own.
|
|
|
|
*/
|
|
|
|
#if (defined(HAVE_POLL_H)||defined(HAVE_SYS_POLL_H)) && !defined(_POLL_EMUL_H_)
|
|
|
|
#define tor_poll poll
|
|
|
|
#else
|
2002-09-03 18:43:50 +00:00
|
|
|
#define USE_FAKE_POLL
|
2004-02-20 23:41:45 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef USE_FAKE_POLL
|
2002-09-03 18:43:50 +00:00
|
|
|
|
2004-02-20 23:41:45 +00:00
|
|
|
#ifndef _POLL_EMUL_H_
|
2002-09-03 18:43:50 +00:00
|
|
|
struct pollfd {
|
2003-12-09 21:37:26 +00:00
|
|
|
int fd;
|
|
|
|
short events;
|
|
|
|
short revents;
|
2002-09-03 18:43:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#define POLLIN 0x0001
|
|
|
|
#define POLLPRI 0x0002
|
|
|
|
#define POLLOUT 0x0004
|
|
|
|
#define POLLERR 0x0008
|
|
|
|
#define POLLHUP 0x0010
|
|
|
|
#define POLLNVAL 0x0020
|
|
|
|
#endif
|
2004-02-20 23:41:45 +00:00
|
|
|
|
|
|
|
int tor_poll(struct pollfd *ufds, unsigned int nfds, int timeout);
|
2002-09-03 18:43:50 +00:00
|
|
|
#endif
|
2004-02-20 23:41:45 +00:00
|
|
|
|
2002-09-03 18:43:50 +00:00
|
|
|
#endif
|