]>
Commit | Line | Data |
---|---|---|
28f540f4 | 1 | /* Compatibility definitions for System V `poll' interface. |
2c6fe0bd UD |
2 | Copyright (C) 1994, 1996 Free Software Foundation, Inc. |
3 | This file is part of the GNU C Library. | |
28f540f4 | 4 | |
2c6fe0bd UD |
5 | The GNU C Library is free software; you can redistribute it and/or |
6 | modify it under the terms of the GNU Library General Public License as | |
7 | published by the Free Software Foundation; either version 2 of the | |
8 | License, or (at your option) any later version. | |
28f540f4 | 9 | |
2c6fe0bd UD |
10 | The GNU C Library is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | Library General Public License for more details. | |
28f540f4 | 14 | |
2c6fe0bd UD |
15 | You should have received a copy of the GNU Library General Public |
16 | License along with the GNU C Library; see the file COPYING.LIB. If not, | |
17 | write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
18 | Boston, MA 02111-1307, USA. */ | |
28f540f4 RM |
19 | |
20 | #ifndef _SYS_POLL_H | |
21 | #define _SYS_POLL_H | |
22 | ||
23 | #include <sys/cdefs.h> | |
24 | ||
25 | /* Data structure describing a polling request. */ | |
26 | struct pollfd | |
27 | { | |
28 | int fd; /* File descriptor to poll. */ | |
29 | short int events; /* Types of events poller cares about. */ | |
30 | short int revents; /* Types of events that actually occurred. */ | |
31 | }; | |
32 | ||
33 | /* Event types that can be polled for. These bits may be set in `events' | |
34 | to indicate the interesting event types; they will appear in `revents' | |
35 | to indicate the status of the file descriptor. */ | |
36 | #define POLLIN 01 /* There is data to read. */ | |
37 | #define POLLPRI 02 /* There is urgent data to read. */ | |
38 | #define POLLOUT 04 /* Writing now will not block. */ | |
39 | ||
2c6fe0bd UD |
40 | /* Some aliases. */ |
41 | #define POLLWRNORM POLLOUT | |
42 | ||
28f540f4 RM |
43 | /* Event types always implicitly polled for. These bits need not be set in |
44 | `events', but they will appear in `revents' to indicate the status of | |
45 | the file descriptor. */ | |
46 | #define POLLERR 010 /* Error condition. */ | |
47 | #define POLLHUP 020 /* Hung up. */ | |
48 | #define POLLNVAL 040 /* Invalid polling request. */ | |
49 | ||
50 | /* Canonical number of polling requests to read in at a time in poll. */ | |
51 | #define NPOLLFILE 30 | |
52 | ||
53 | ||
54 | __BEGIN_DECLS | |
55 | ||
56 | /* Poll the file descriptors described by the NFDS structures starting at | |
57 | FDS. If TIMEOUT is nonzero and not -1, allow TIMEOUT milliseconds for | |
58 | an event to occur; if TIMEOUT is -1, block until an event occurs. | |
59 | Returns the number of file descriptors with events, zero if timed out, | |
60 | or -1 for errors. */ | |
61 | ||
62 | extern int poll __P ((struct pollfd *__fds, unsigned long int __nfds, | |
63 | int __timeout)); | |
64 | ||
65 | __END_DECLS | |
66 | ||
67 | #endif /* sys/poll.h */ |