xref: /haiku/headers/posix/poll.h (revision c237c4ce593ee823d9867fd997e51e4c447f5623)
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 
9 #include <signal.h>
10 #include <sys/time.h>
11 
12 
13 typedef unsigned long nfds_t;
14 
15 struct pollfd {
16 	int		fd;
17 	short	events;		/* events to look for */
18 	short	revents;	/* events that occured */
19 };
20 
21 /* events & revents - compatible with the B_SELECT_xxx definitions in Drivers.h */
22 #define	POLLIN		0x0001		/* any readable data available */
23 #define	POLLOUT		0x0002		/* file descriptor is writeable */
24 #define	POLLRDNORM	POLLIN
25 #define	POLLWRNORM	POLLOUT
26 #define	POLLRDBAND	0x0008		/* priority readable data */
27 #define	POLLWRBAND	0x0010		/* priority data can be written */
28 #define	POLLPRI		0x0020		/* high priority readable data */
29 
30 /* revents only */
31 #define	POLLERR		0x0004		/* errors pending */
32 #define	POLLHUP		0x0080		/* disconnected */
33 #define	POLLNVAL	0x1000		/* invalid file descriptor */
34 
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 extern int poll(struct pollfd *fds, nfds_t numfds, int timeout);
41 extern int ppoll(struct pollfd *fds, nfds_t numfds,
42 	const struct timespec *timeout, const sigset_t *sigMask);
43 
44 #ifdef __cplusplus
45 }
46 #endif
47 
48 
49 
50 #endif /* _POLL_H */
51