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
|
|
|
|
|
2004-05-10 07:54:13 +00:00
|
|
|
/**
|
|
|
|
* \file fakepoll.h
|
|
|
|
* \brief Headers for fakepoll.c
|
|
|
|
*/
|
|
|
|
|
2002-09-03 18:43:50 +00:00
|
|
|
#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
|
2004-05-01 20:46:28 +00:00
|
|
|
* select. On Mac OS 10.3, this wrapper is kinda flaky, and we should
|
2004-02-20 23:41:45 +00:00
|
|
|
* use our own.
|
|
|
|
*/
|
2004-05-05 01:01:34 +00:00
|
|
|
#if !(defined(HAVE_POLL_H)||defined(HAVE_SYS_POLL_H))&&!defined(_POLL_EMUL_H_)
|
2002-09-03 18:43:50 +00:00
|
|
|
#define USE_FAKE_POLL
|
2004-02-20 23:41:45 +00:00
|
|
|
#endif
|
|
|
|
|
2004-05-05 01:01:34 +00:00
|
|
|
#if defined USE_FAKE_POLL && !defined(_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-04-06 03:44:36 +00:00
|
|
|
|