sys_ppoll [fs/select.c]
Waits for an event on a file descriptor or until a signal is caught. Arguments
eax | 309
ebx | Pointer to an array of a pollfd structures
`struc pollfd { fd rd 1 events rw 1 revents rw 1 }`
`pollfd members: fd` `File descriptor of an open file.` `events` `A bit-mask specifying the events the application is interested in. Available flags are:`
`POLLIN` | `There is data to read`
`POLLPRI` | `There is urgent data to read`
`POLLOUT` | `Writing now will not block`
`POLLERR` | `Error condition`
`POLLHUP` | `Hung up`
`POLLNVAL` | `Invalid request: fd not open`
`POLLRDNORM` | `Normal data may be read`
`POLLRDBAND` | `Priority data may be read`
`POLLWRNORM` | `Writing now will not block`
`POLLWRBAND` | `Priority data may be written`
`POLLMSG` | `*to be documented*`
`POLLREMOVE` | `*to be documented*`
`POLLRDHUP` | `*to be documented*`
`revents` `This member is filled by the kernel with the events that actually occurred.`
ecx | Specifies the number of elements in the array of pollfd structures. *to be verified*
edx | Pointer to a timespec structure which specifies an upper limit on the amount of time that sys_ppoll will block If edx is specified as NULL, then sys_ppoll can block indefinitely.
esi | *to be documented*
Return values If the system call succeeds the return value is a positive number which denotes the number of structures which have non-zero revents fields (in other words, those descriptors with events or errors reported). A value of 0 indicates that the call timed out and no file descriptors have been selected. If the system call fails the return value is one of the following errno values:
`-EBADF` | `An invalid file descriptor was given in one of the sets.`
`-ENOMEM` | `There was no space to allocate file descriptor tables.`
`-EFAULT` | `The array given as argument was not contained in the calling program's address space.`
`-EINTR` | `A signal occurred before any requested event.`
`-EINVAL` | `The ecx value exceeds the RLIMIT_NOFILE value.`
Remarks n/a Compatibility Available since 2.6.16.