Back to Wsl2 Linux Kernel

request poll()

Documentation/userspace-api/media/mediactl/request-func-poll.rst

5.5.31.7 KB
Original Source

.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later .. c:namespace:: MC

.. _request-func-poll:


request poll()


Name

request-poll - Wait for some event on a file descriptor

Synopsis

.. code-block:: c

#include <sys/poll.h>

.. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout )

Arguments

ufds List of file descriptor events to be watched

nfds Number of file descriptor events at the *ufds array

timeout Timeout to wait for events

Description

With the :c:func:poll() function applications can wait for a request to complete.

On success :c:func:poll() returns the number of file descriptors that have been selected (that is, file descriptors for which the revents field of the respective struct :c:type:pollfd is non-zero). Request file descriptor set the POLLPRI flag in revents when the request was completed. When the function times out it returns a value of zero, on failure it returns -1 and the errno variable is set appropriately.

Attempting to poll for a request that is not yet queued will set the POLLERR flag in revents.

Return Value

On success, :c:func:poll() returns the number of structures which have non-zero revents fields, or zero if the call timed out. On error -1 is returned, and the errno variable is set appropriately:

EBADF One or more of the ufds members specify an invalid file descriptor.

EFAULT ufds references an inaccessible memory area.

EINTR The call was interrupted by a signal.

EINVAL The nfds value exceeds the RLIMIT_NOFILE value. Use getrlimit() to obtain this value.