1/*
2 * Copyright 2002-2012 Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _POLL_H
6#define _POLL_H
7
8
9typedef unsigned long nfds_t;
10
11struct pollfd {
12	int		fd;
13	short	events;		/* events to look for */
14	short	revents;	/* events that occured */
15};
16
17/* events & revents - compatible with the B_SELECT_xxx definitions in Drivers.h */
18#define	POLLIN		0x0001		/* any readable data available */
19#define	POLLOUT		0x0002		/* file descriptor is writeable */
20#define	POLLRDNORM	POLLIN
21#define	POLLWRNORM	POLLOUT
22#define	POLLRDBAND	0x0008		/* priority readable data */
23#define	POLLWRBAND	0x0010		/* priority data can be written */
24#define	POLLPRI		0x0020		/* high priority readable data */
25
26/* revents only */
27#define	POLLERR		0x0004		/* errors pending */
28#define	POLLHUP		0x0080		/* disconnected */
29#define	POLLNVAL	0x1000		/* invalid file descriptor */
30
31
32extern
33#ifdef __cplusplus
34"C"
35#endif
36int poll(struct pollfd *fds, nfds_t numfds, int timeout);
37
38#endif /* _POLL_H */
39