media: docs: move uAPI book to userspace-api/media
Since 2017, there is an space reserved for userspace API,
created by changeset 1d596dee38
("docs: Create a user-space API guide").
As the media subsystem was one of the first subsystems to use
Sphinx, until this patch, we were keeping things on a separate
place.
Let's just use the new location, as having all uAPI altogether
will likely make things easier for developers.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
103
Documentation/userspace-api/media/gen-errors.rst
Normal file
103
Documentation/userspace-api/media/gen-errors.rst
Normal file
@@ -0,0 +1,103 @@
|
||||
.. Permission is granted to copy, distribute and/or modify this
|
||||
.. document under the terms of the GNU Free Documentation License,
|
||||
.. Version 1.1 or any later version published by the Free Software
|
||||
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||||
.. and no Back-Cover Texts. A copy of the license is included at
|
||||
.. Documentation/userspace-api/media/fdl-appendix.rst.
|
||||
..
|
||||
.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
|
||||
|
||||
.. _gen_errors:
|
||||
|
||||
*******************
|
||||
Generic Error Codes
|
||||
*******************
|
||||
|
||||
|
||||
.. _gen-errors:
|
||||
|
||||
.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
|
||||
|
||||
.. flat-table:: Generic error codes
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
:widths: 1 16
|
||||
|
||||
|
||||
- - ``EAGAIN`` (aka ``EWOULDBLOCK``)
|
||||
|
||||
- The ioctl can't be handled because the device is in state where it
|
||||
can't perform it. This could happen for example in case where
|
||||
device is sleeping and ioctl is performed to query statistics. It
|
||||
is also returned when the ioctl would need to wait for an event,
|
||||
but the device was opened in non-blocking mode.
|
||||
|
||||
- - ``EBADF``
|
||||
|
||||
- The file descriptor is not a valid.
|
||||
|
||||
- - ``EBUSY``
|
||||
|
||||
- The ioctl can't be handled because the device is busy. This is
|
||||
typically return while device is streaming, and an ioctl tried to
|
||||
change something that would affect the stream, or would require
|
||||
the usage of a hardware resource that was already allocated. The
|
||||
ioctl must not be retried without performing another action to fix
|
||||
the problem first (typically: stop the stream before retrying).
|
||||
|
||||
- - ``EFAULT``
|
||||
|
||||
- There was a failure while copying data from/to userspace, probably
|
||||
caused by an invalid pointer reference.
|
||||
|
||||
- - ``EINVAL``
|
||||
|
||||
- One or more of the ioctl parameters are invalid or out of the
|
||||
allowed range. This is a widely used error code. See the
|
||||
individual ioctl requests for specific causes.
|
||||
|
||||
- - ``ENODEV``
|
||||
|
||||
- Device not found or was removed.
|
||||
|
||||
- - ``ENOMEM``
|
||||
|
||||
- There's not enough memory to handle the desired operation.
|
||||
|
||||
- - ``ENOTTY``
|
||||
|
||||
- The ioctl is not supported by the driver, actually meaning that
|
||||
the required functionality is not available, or the file
|
||||
descriptor is not for a media device.
|
||||
|
||||
- - ``ENOSPC``
|
||||
|
||||
- On USB devices, the stream ioctl's can return this error, meaning
|
||||
that this request would overcommit the usb bandwidth reserved for
|
||||
periodic transfers (up to 80% of the USB bandwidth).
|
||||
|
||||
- - ``EPERM``
|
||||
|
||||
- Permission denied. Can be returned if the device needs write
|
||||
permission, or some special capabilities is needed (e. g. root)
|
||||
|
||||
- - ``EIO``
|
||||
|
||||
- I/O error. Typically used when there are problems communicating with
|
||||
a hardware device. This could indicate broken or flaky hardware.
|
||||
It's a 'Something is wrong, I give up!' type of error.
|
||||
|
||||
- - ``ENXIO``
|
||||
|
||||
- No device corresponding to this device special file exists.
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
#. This list is not exhaustive; ioctls may return other error codes.
|
||||
Since errors may have side effects such as a driver reset,
|
||||
applications should abort on unexpected errors, or otherwise
|
||||
assume that the device is in a bad state.
|
||||
|
||||
#. Request-specific error codes are listed in the individual
|
||||
requests descriptions.
|
Reference in New Issue
Block a user